我正在尝试将一个类绑定到我的应用程序的根元素,但是我在使它工作时遇到了一些麻烦。
我希望在classNameBinding
中设置ApplicationView
可以解决问题,但看起来ApplicationView
的元素是undefined
。我可以通过定位$(App.rootElement)
来手动添加/删除课程,但如果可以的话,我宁愿做“贪婪的方式”。
这是一个jsfiddle:http://jsfiddle.net/mcYcU/1/
谢谢!
答案 0 :(得分:0)
App.rootElement
是应用程序将在其中呈现的节点(默认情况下为body标签),除此之外它不会做太多(我认为)。如果您想将Ember应用程序与其他HTML分开,则非常有用...
您可以/应该考虑的是App.ApplicationView
定位,因为它将是App.rootElement
之后的应用程序的最外层节点。只需要添加一个classNames: ['appRoot']
的类,这样就可以在CSS
App.ApplicationView = Ember.View.extend({
classNames: ['appRoot'],
isActive: false,
classNameBindings: ['isActive'],
toggleClass: function(){
this.toggleProperty('isActive');
},
manuallyAddClass: function() {
this.toggleClass();
if(this.get('isActive')) {
$(App.rootElement).addClass('is-active');
} else {
$(App.rootElement).removeClass('is-active');
}
}
});
您的CSS可能有类似#application-root .appRoot.is-active { ... }
...