私のEmberアプリケーションでは、グループにナビゲーションバーがあります。それぞれのユニークなアイテムは、バーで二回表示されます。独自のグループにし、「すべてのアイテム」グループに:Emberで{{link-to}}をアクティブにする
ユーザーが項目3を選択した場合、両方のリンクがactive
CSSクラスを取得することでアクティブになる:
ユーザーがクリックしたリンクがアクティブになるようにコードを変更するにはどうすればよいですか?ユーザーが/ item/3 URLを手動で開くと、最初のリンクだけが有効になります。ここで
は、これまでの私のコードです: http://jsbin.com/yidofayoma/3/edit?html,js,outputvar App = Ember.Application.create({
rootElement: '#app'
});
App.Router.map(function() {
this.route('item', { path: '/item/:item_id' });
});
App.ItemRoute = Ember.Route.extend({
model: function(params) {
return params.item_id;
}
});
ナビゲーションバーテンプレート:
<ul>
<li>{{#link-to "index"}}Index{{/link-to}}</li>
<li>
All items
<ul>
<li>{{#link-to "item" 1}}Item 1{{/link-to}}</li>
<li>{{#link-to "item" 2}}Item 2{{/link-to}}</li>
<li>{{#link-to "item" 3}}Item 3{{/link-to}}</li>
<li>{{#link-to "item" 4}}Item 4{{/link-to}}</li>
<li>{{#link-to "item" 5}}Item 5{{/link-to}}</li>
</ul>
</li>
<li>
Group A
<ul>
<li>{{#link-to "item" 1}}Item 1{{/link-to}}</li>
<li>{{#link-to "item" 2}}Item 2{{/link-to}}</li>
<li>{{#link-to "item" 3}}Item 3{{/link-to}}</li>
</ul>
</li>
<li>
Group B
<ul>
<li>{{#link-to "item" 4}}Item 4{{/link-to}}</li>
<li>{{#link-to "item" 5}}Item 5{{/link-to}}</li>
</ul>
</li>
</ul>
<hr />
{{outlet}}
エンバーバージョン:2.4.2
この場合、CSSがお手伝いできます。さまざまなレベルのアクティブなメニューの異なるCSSを追加します。メニューはアクティブなクラスになりますが、アクティブに見えません。 – murli2308
@ murli2308いいアイデアですが、メニューの**任意の**リンクをクリックしてアクティブにしたいと考えています。 –