控制器改变Ember模型的事件?

时间:2014-02-17 22:06:18

标签: javascript ember.js

在实例化或为特定路由重新初始化控制器时,是否应该使用事件或挂钩来捕获控制器?

我已经尝试过init() - 但我的控制器只在应用程序的生命周期内实例化一次,但根据路由支持多个模型。我需要捕获的是当控制器的模型发生变化时,或者在实例化后路由发生变化时的某个时刻。

我也尝试过设置一个计算属性,但它并不合适,因为我需要一个事件来在模型更改时触发一个函数 - 不仅仅是在调用属性时。

非常感谢任何帮助。


编辑:啊哈!我完全看了一下这样一个事实,即我可以在我的函数上设置observes(),以便在模型更改时触发它。

所以,我的答案是做以下事情:

dependency: function() {
    console.log('the model has changed');

    //...other stuff...
}.observes('model')

1 个答案:

答案 0 :(得分:8)

从我的编辑:

  

啊哈!我完全看了一下我可以在我的上面设置observes()的事实   函数,以便在模型更改时触发。

     

所以,我的答案是做以下事情:

dependency: function() {
    console.log('the model has changed');

    //...other stuff... 
}.observes('model')