我有这样的路线:
App.PeopleRoute = Ember.Route.extend({
model: function()
{
return App.Persons.find(personId);
}
});
其中personId是异步加载的,是Ember之外的普通JavaScript变量。现在,当显示路径时,它将获取当前的PersonId并显示正确的数据。但是当我更改personId的值时,它不会更新视图。
所以我的问题是什么是刷新此路线以查找具有new personId的记录的方法?
答案 0 :(得分:2)
这是因为仅当通过URL为具有动态段的路由输入时才会执行model
挂钩。阅读更多相关信息here。
最简单的解决方案是使用transitionTo
。
App.PeopleRoute = Ember.Route.extend({
model: function(params)
{
return App.Persons.find(params.personId);
},
actions: {
personChanged: function(person){
this.transitionTo("people", person);
}
}
});
App.PeopleController = Em.Controller.extend({
observeID: function(){
this.send("personChanged");
}.observes("model.id");
});