我正在使用JSON请求为名为example的模板填充模型。
App.ExampleRoute = Ember.Route.extend({
model: function() {
var url = "example/GetExamples";
return Ember.$.getJSON(url).then(function(data) {
return data;
});
}
});
示例模板完美呈现此数据。现在我的后端可能会不时更改,因为我有另一个名为addExample的模板。它只是向服务器发送一个JSON请求,以便从另一个模板中添加数据库中的条目。添加示例后,我尝试转换到示例模板,但我只看到旧数据。刷新页面时,会显示添加了条目的新数据。
App.AddController=Ember.Controller.extend({
postAddRequest: function() {
var request = $.post("/example/AddExample", {params});
request.then(this.success.bind(this), this.failure.bind(this));
},
success: function(data) {
this.transitionToRoute('example');
}
});
所以有什么方法可以强制Ember重新渲染'example'模板并在路由中调用它的模型钩子而不刷新页面。我不能将ember-data用于持久性,因为它仍处于测试阶段。
答案 0 :(得分:0)
转换到路线并发送您想要在路线上使用的数据。此外,路由应该在URL中使用id / slug。如果没有,请参阅下文
this.transitionToRoute('example', data);
如果您已经在路线上并且想要更新当前设置的控制器的模型,则可以获取该控制器并设置模型。
App.SomeController = Em.Controller.extend({
needs: ['example']
someFunction: function(){
var model = ... get new model;
this.get('controllers.example').set('model', model);
}
});