Ember Data有一个reload
方法;不过,我使用更基本的方法(using Ember objects)来提供我的模型。
我希望用户能够通过例如以下操作重新加载当前路线的模型。单击一个按钮。没有Ember Data,这可能吗?
答案 0 :(得分:1)
这是一个非常简单的示例,说明我如何使用您的方法(注意“清除”)。
您可以从路线/控制器/其他任何地方调用clear + find。我还在一些较大的应用程序中为$ .ajax添加了一个“beforeSend”(这将在xhr解析之前为你调用clear)。
App.Person.reopenClass({
people: Ember.A([]),
clear: function() {
this.people = Ember.A([]);
},
add: function(hash) {
var person = App.Person.create(hash);
this.people.pushObject(person);
},
remove: function(person) {
this.people.removeObject(person);
},
find: function() {
var self = this;
$.getJSON('/api/people', function(response) {
response.forEach(function(hash) {
var person = App.Person.create(hash);
Ember.run(self.people, self.people.pushObject, person);
});
}, this);
return this.people;
}
});
答案 1 :(得分:0)
问题是我正在进行的AJAX调用的异步性质。
这不起作用:
this.set('model', App.MyObject.findAll(value));
我需要允许AJAX调用返回响应,然后填充模型:
var that = this;
App.MyObject.findAll(value).then(function(response) {
that.set('model', response);
});