Ember.js - 如何将类绑定到rootElement?

时间:2013-08-02 18:00:11

标签: ember.js

我正在尝试将一个类绑定到我的应用程序的根元素,但是我在使它工作时遇到了一些麻烦。

我希望在classNameBinding中设置ApplicationView可以解决问题,但看起来ApplicationView的元素是undefined。我可以通过定位$(App.rootElement)来手动添加/删除课程,但如果可以的话,我宁愿做“贪婪的方式”。

这是一个jsfiddle:http://jsfiddle.net/mcYcU/1/

谢谢!

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 { ... } ...

的内容