親のデータへのglimmer componentアクセスを取得

{{log "rating this parent" this.parentView._parentView.topic}}

は、醜いエラーを生成します。

<RatingOne @scaleValue={{this.scaleValue}} @passedRouter={{this.router}} @topic={{this.parentView}} />

は、エラーを生成しないようです。

私は本当に above-topic-list-item が必要ですが、あなたの素晴らしい例のおかげで、トピックが outletArgs にあることを発見しました。

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/components/topic-list/topic-list-item.gjs#L284

ハッ!やります!

つまり、outletArgs は、それが this の中にあるということですか?(そのように見えます。args の中を調べる必要があると思っていました...)

だから、私のコネクタのhbsでは、this.topic にアクセスして、コンポーネントを次のように呼び出すことができます。

<RatingOne @name="one" @topic={{this.topic}}/>

そして、RatingOne コンポーネントのhbs(いつか rating に名前変更する予定です。なぜなら、値を渡す方法を見つけたからです)では、次のようにできます。

  This is topic {{this.topic.id}} {{this.topic.title}}
  This is category id: {{this.topic.category_id}})

そしてトピックの情報を取得できます!

そして今、トピックが見えるようになりました。トピックシリアライザーに引数を追加できますよね?(カテゴリに渡す方が良いかもしれませんが...あるいは、シリアライザーに「doTheThing」という値だけを渡して、実際の内容は SiteSettings から取得するかもしれません。これはサイトレベルで、カテゴリレベルではないからです。)

何か別のものが非推奨になっていない限り、あなたはそれをやったようです。本当にありがとうございます。 :beer: :beers: :clinking_glasses: :moneybag:

「いいね!」 3