网站搜索

javascript - Ember 中控制器更改模型的事件?


是否有一个事件或钩子应该用于在控制器实例化后,或为特定路由重新初始化时捕获它?

我已经尝试过 init() —— 但是我的控制器在应用程序的整个生命周期中只实例化一次,但根据路由可以支持多个模型。我需要捕捉的是控制器的模型何时改变,或者在实例化后路由更改的某个时刻。

我也尝试过设置一个计算属性,但这并不合适,因为我需要在模型变化时触发一个函数的事件——而不仅仅是在调用属性时。

任何帮助都非常感激。

编辑:啊哈!我完全忽略了我可以在我的函数上设置 observes() 的事实,这样当模型发生变化时它就会触发。

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

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

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

答案#1

来自我的编辑:

啊哈!我完全忽略了一个事实,那就是我可以在我的函数上设置 observes(),这样当模型发生变化时它就会触发。

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

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

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