初心者からの質問です:Developer’s Guide(https://meta.discourse.org/t/developer-s-guide-to-discourse-themes/93648)では、api.getCurrentUser(); を使用してユーザー情報を取得し、その後 console.log(user) とする方法が説明されています。これは簡単ですね。しかし、トピックページにいるときに、トピックに関する同様の情報を取得するにはどうすればよいでしょうか?getTopic() を試してみましたが、そのようなメソッドは存在しません。特定のトピックページで利用可能なトピックの値を取得し、console.log を使用して利用可能なものを確認するにはどうすればよいでしょうか?
それにはいくつかの方法がありますが、闇雲に提案する前に、まず明確にさせてください。
何を、どのように行おうとしていますか?
私たちが目指していたのは、サイト全体で表示したい特定の HTML メッセージを、トピックごとに個別に入力するのではなく、トピックのタグに応じて自動的に表示することです。そのため、メッセージとタグを設定に保存し、Discourse コンテナに基づいて個別のトピックのタグをターゲットとするウィジェットを使用することにしました。このアプローチは正しいでしょうか?例えば、以下のようなコードです:
const container = Discourse.__container__;
const topicController = container.lookup("controller:topic");
tags = topicController.get("target.currentRoute.parent.attributes.tags");
その後、トピックのタグと設定に保存されたタグを比較し、その結果に応じて HTML を表示するかどうかを判断します。