Discourse.NavItem の非推奨化後、これはもう機能しなくなったようです。この投稿で、カスタムトップナビゲーションリンク が解決策になると言及されていました:
ただし、このコンポーネントは現在の場所に基づいてリンク URL を動的に確認する機能を持っていません。
私のユースケースでは、メインページとサブカテゴリで異なるリンクを設定したいと考えています。例えば、現在のカテゴリに基づいて「未完了/完了」タグフィルターのナビゲーション項目を表示したい場合、以前は以下のコードを使用できていましたが、現在は動作しません:
<script>
Discourse.ExternalNavItem = Discourse.NavItem.extend({
href : function() {
return this.get('href');
}.property('href')
});
I18n.translations.en.js.filters.unfinished = { title: "tbc", help: "placeholder" };
I18n.translations.en.js.filters.finished = { title: "finished", help: "placeholder" };
Discourse.NavItem.reopenClass({
buildList : function(category, args) {
var list = this._super(category, args);
var url = category ? category.url : "";
// メニューと 2 つの特定のカテゴリでは、異なる URL を持つ 2 つのナビゲーション項目が表示されます
if(!category || (category && url && (url.includes("mix") || url.includes("other")))) {
var tbc_url = category ? "/tags" + url + "/tbc" : "/tags/tbc";
var finish_url = category ? "/tags" + url + "/finished" : "/tags/finished";
list.push(Discourse.ExternalNavItem.create({href: tbc_url, name: 'tbc'}));
list.push(Discourse.ExternalNavItem.create({href: finish_url, name: 'finish'}));
}
return list;
}
});
</script>
現在の navigation-item コンポーネントに基づいて、このコードをどのように更新すればよいか、お手伝いいただけますでしょうか?あるいは、より一般的な質問として、Discourse.NavItem の代替となる現在の使い方をどのように見つけることができますか?
よろしくお願いします!