ここでは少し楽観的すぎたかもしれません。申し訳ありません、@pfaffman!私が作成したPRは、アウトレットが使用されていなくても、すべての投稿の間に新しいラッパー <div> を導入してしまいます。これは実際には望ましいことではありません。
ラッパーを回避する方法はあるかもしれませんが、すぐにできる簡単なものはありません。
そのため、現時点での最善の解決策は、OPで参照した広告プラグインの実装をコピーすることだと思います。
基本的に:
-
コンポーネント(Glimmerでもクラシックでもどちらでも構いません)を作成し、必要なものをレンダリングします。
-
registerWidgetShimを使用して、そのコンポーネントをウィジェットとして利用可能にします。広告プラグインの例では、「after-post-ad」という名前のウィジェットを作成し、PostBottomAdコンポーネントをレンダリングしています。ウィジェット属性(@data)をすべて、コンポーネントの@model引数に渡しています。 -
api.decorateWidgetを使用して、post:afterの位置に新しいウィジェットシムをレンダリングします。あなたの場合は、最初の投稿にのみ表示したいので、次のようなことができます。api.decorateWidget("post:after", (helper) => { if (helper.widget.model.post_number === 1) { return helper.attach("my-widget-shim"); } });
トピックページを最終的にGlimmer化する際には、ウィジェットシム/デコレーションを削除し、プラグインアウトレットに置き換える必要があります。これは比較的簡単でしょう。コンポーネント内のすべての表示ロジックは、プラグインアウトレットで再利用可能になります。
どのように進んだか教えてください!フォローアップの質問があれば喜んでお手伝いします。多くの要素が絡み合っていることは承知しています。