このガイド「Beginner’s guide to developing Discourse Themes」を読んだ後、投稿ページの「topic-above-post-stream」プラグインアウトレットにpost-avatarウィジェットをマウントしようとしましたが、ページに表示されませんでした。
追加したコードは以下のとおりです。
<script type="text/x-handlebars" data-template-name="/connectors/topic-above-post-stream/post-page">
<div class="post-detail">
{{mount-widget widget="post-avatar"}}
</div>
</script>
何か見落としていることはありますか?
「いいね!」 1
ウィジェットが表示に必要な属性が不足している可能性があります。たとえば、このコンテキストでどのユーザーのアバターを表示するかをどのように認識するのでしょうか?
元のウィジェットはこちらで確認できます。
これには以下が必要です。
- template
- username
- name
- url
したがって、プラグインアウトレットに目的のデータを取得し、それをウィジェットに渡す必要があります。たとえば次のようになります。
{{mount-widget widget="post-avatar" args=(hash username=this.username)}}
とはいえ…具体的に何を達成しようとしていますか?アバターを表示したいだけであれば、アバターヘルパーを使用する方が良い方法かもしれません。その場合は次のようになります。
{{avatar user imageSize="large"}}
この場合でも、user が存在することを確認する必要があります。なぜなら、これがどのユーザーを表示するかを認識する方法だからです。
「いいね!」 3
こんにちは @awesomerobot
ご返信ありがとうございます。
投稿ページで、各投稿のテキストの上にユーザーアバターを表示したいと考えています。しかし、「topic-above-post-stream」プラグインのアウトレットに必要なユーザーデータを取得することができませんでした。そのため、以下のコードを common/head_tag.html ファイルに追加すると、「topic-above-post-stream」プラグインのアウトレットにゴミ箱アイコンが表示されます。
<script type="text/x-handlebars" data-template-name="/connectors/topic-above-post-stream/custom-post-page">
<div class="post-detail header">
{{mount-widget widget="post-avatar" args=(hash username=this.username)}}
</div>
</script>