样式化Ember rootElement

时间:2014-01-31 23:21:47

标签: ember.js

我一直在反对这一天超过一天,没有任何实验,谷歌或Stack Overflow搜索有帮助。

我正在开发一个Ember / Vert.x应用程序,它有一个Ember Route,可以通过SocksJS接受“实时”推送数据。这很好用,包括成功实现动态(Ember)模板。

我现在需要的是能够在rootElement上设置样式(rootElement是body)。我尝试了很多不同的方法,包括求助于jQuery调用。什么都不会在body标签上放置样式。我可以通过执行以下操作获取在body标签 1st div上设置的style属性:

App.ApplicationView = Ember.View.extend({
  attributeBindings:  ['style'],
  style: "background-color: blue; background-image: url('" + App.currentProgram.backgroundImage + "')"
});

这呈现:

<div id="ember325" class="ember-view" style="background-image: url('img/bg/1.png')">...</div>

但是,我真的想动态设置 body 标记的样式。

任何帮助都会非常受欢迎,因为这是下周我的原型客户端演示的阻止项目。

1 个答案:

答案 0 :(得分:0)

您可以使用didInsertElement方法知道插入dom的时间,并使用this.$().parent()更新body元素。

App.ApplicationView = Ember.View.extend({
    didInsertElement: function() {
        this._super();        
        this.$().parent().css({
            "background-color": "blue",
            "background-image": "url('" + App.currentProgram.backgroundImage + "')"
        });
    }
})

实时样本http://jsfiddle.net/X5TmH/