前置きとして、これは before-create-topic プラグインアウトレットでボタンを作成するために、カテゴリの custom_fields を知る必要があるプラグイン向けです。また、after-topic-footer-main-buttons コネクタでもこれを使用する必要があります。
おそらく、非常に単純な何かを見落としているのでしょう…
イニシャライザー内で以下のコードを使って、カテゴリクラスを取得することは「まあまあ」できます。
const controller = api.container.lookup("controller:navigation/category");
これを出力すると、さまざまなプロパティが表示されます。開発者コンソールでは category: (...) が確認できます。(..) をクリックすると custom_fields と探しているフィールドが表示されます。これをプラグイン API からどのように取得すればよいのでしょうか?
プロパティを取得するさまざまな方法を試しましたが、すべて undefined を返してしまいます。
pfaffman
(Jay Pfaffman)
2
どのようなことを目指しているのか、少し立ち止まって説明すると良いでしょう。基本的に、必要なデータはすでに利用可能です。もしそうでない場合は、テーマ内で Ajax を使用してデータを取得するか、プラグイン内でシリアライザーに追加してください。
カスタムフィールドをカテゴリから取得しようとしています。以前は明確でなく、申し訳ありません。元の投稿をより詳しい情報で更新しました。
「いいね!」 1
pfaffman
(Jay Pfaffman)
4
それまで私が理解していた情報よりも多いですね。. . . plugin.rb には以下のような記述があります:
add_to_serializer(:category, :your_plugin) do
some_stuff
end
ただし、あなたがやりたいことは、おそらくシリアライザーに何かを追加する可能性のある他のプラグインを探してみることだと思います。Topic Ratings Plugin や Topic List Previews (legacy) は、参考にするのに良い例でしょう。そして、おそらく「明らか」になるはずです(ただし、私のように、他の「当たり前」な作業に何時間も費やした後ですが)。
変数はシリアライザーに既に追加されています。これを JS 内でアクセスしようとしています。元の投稿で言及した controller 変数から取得できるかと考えたのですが、どのようにアクセスすればよいかがわかりません。
「いいね!」 1