在Ember.js
上的ObjectController
中,有一个函数init()
在实例化控制器时触发。当控制器离开上下文时,有没有办法可以触发一些额外的代码?
以下是我在init()
中所做的事情:
init: function() {
jQuery("body").css("background-color", "#f2f1ec");
}
在控制器出口上,或丢失上下文我想再次改变背景颜色:
jQuery("body").css("background-color", "#333333");
感谢。
答案 0 :(得分:1)
我会创建一个自定义视图并写入didInsertElement
上的css更改,而不是在控制器中处理它。在这种特殊情况下,由于您在body
元素上运行,您甚至可以在路线的activate
和deactivate
函数中执行此操作寻找目标。 (如果您在ApplicationRoute
上进行此操作可能会出现问题。不确定之前是否输入document.ready()
以下a fiddle使用路由器的activate
和deactivate
功能。
这是自定义视图的an example。