Javascript 控制器在Ember中更改模型的事件?

Javascript 控制器在Ember中更改模型的事件?,javascript,ember.js,Javascript,Ember.js,当控制器在实例化后初始化,或者为特定路由重新初始化时,是否应该使用事件或钩子来捕获 我已经尝试了init()——但是我的控制器在应用程序的生命周期中只实例化一次,但是根据路由支持多个模型。我需要捕获的是控制器的模型何时更改,或者实例化后的某个时刻路由何时更改 我也尝试过设置computed属性,但这并不合适,因为我需要一个事件在模型更改时触发函数,而不仅仅是在调用属性时 非常感谢您的帮助 编辑:啊哈!我完全了解了我可以在函数上设置observes(),以便在模型更改时触发该函数的事实 因此,我

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

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

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

非常感谢您的帮助


编辑:啊哈!我完全了解了我可以在函数上设置
observes()
,以便在模型更改时触发该函数的事实

因此,我的答案是做以下几点:

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

    //...other stuff...
}.observes('model')
dependency: function() {
    console.log('the model has changed');

    //...other stuff... 
}.observes('model')
从我的编辑:

啊哈!我仔细考虑了我可以在我的电脑上设置observes()的事实 函数,以便在模型更改时触发

因此,我的答案是做以下几点:

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

    //...other stuff...
}.observes('model')
dependency: function() {
    console.log('the model has changed');

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

看看这里,Zaemz,请将其作为您的答案,并将其标记为已接受(如果可用)。嘿,使用observe是一种好的做法吗?我在某个地方读到了一些增加性能的内容。@whyAto8我不认为这是一个坏主意的任何原因。在Ember的最新版本中,API实际上已经改变了(我已经有一段时间没有使用它了。)我将阅读并更新我的答案。目前,我将遵循以下文件: