在您看来,您将绑定到一个类名。我的应用程序中有以下视图:
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}}')
});
在这里,您已将您的 className 绑定到“isSelected”属性返回的任何内容。仅当视图的控制器选择的选项卡 ID 与此视图的选项卡 ID 相同时才适用。
当视图被选中时,代码将附加一个 CSS 类名“is-selected”。
如果你想在上下文中查看代码,代码在 GitHub 上:https://github.com/joachimhs/EurekaJ/blob/netty-ember/EurekaJ.View/src/main/webapp/js/app/views。 js#L100