我有这样的观点。
App.TestView = Em.View.extend
templateName: 'test'
modelDidChange: (() ->
# fires twice, need to check state to make sure it doesn't
if @state is 'preRender'
# ...do stuff
).observes('controller.content')
我希望能够在视图更改为新模型时触发,例如,如果我们在应用程序中从route / test / 123转到/ test / 456。上面的代码适用于此但看起来很奇怪。我不认为我应该关注观点的状态。有没有正确的"这个怎么样?我似乎无法找到任何其他选择。我尝试过使用on(' init')挂钩,但如果我使用它,控制器似乎是未定义的。
答案 0 :(得分:1)
我会使用setupController挂钩在路径中执行此操作。它将在模型更改时调用。
App.TestRoute = Ember.Route.extend({
setupController: function (controller, model) {
// Call _super for default behavior
this._super(controller, model);
console.log('model change:'+model.get('id'));
# ...do stuff
}
});