ビューでは、className にバインドします。アプリに次のビューがあります。
EurekaJ.TabItemView = Ember.View.extend(Ember.TargetActionSupport, {
content: null,
tagName: 'li',
classNameBindings: "isSelected",
isSelected: function() {
return this.get('controller').get('selectedTab').get('tabId') == this.get('tab').get('tabId');
}.property('controller.selectedTab'),
click: function() {
this.get('controller').set('selectedTab', this.get('tab'));
if (this.get('tab').get('tabState')) {
EurekaJ.router.transitionTo(this.get('tab').get('tabState'));
}
},
template: Ember.Handlebars.compile('<div class="featureTabTop"></div>{{tab.tabName}}')
});
ここで、「isSelected」プロパティが返すものに className をバインドしました。これは、ビューのコントローラーの選択されたタブ ID がこのビューのタブ ID と同じ場合にのみ当てはまります。
ビューが選択されると、コードは「is-selected」という CSS クラス名を追加します。
コードをコンテキストで確認したい場合、コードは GitHub にあります: https://github.com/joachimhs/EurekaJ/blob/netty-ember/EurekaJ.View/src/main/webapp/js/app/views。 js#L100