我在重装我的余烬RESTful模型时遇到了一些困难,我不知道为什么。这是[概念上]我正在尝试做的事情...... http://jsbin.com/EfuBiNo/4/edit
该代码和我的代码之间的唯一区别是我没有使用FixtureAdapter,我正在使用RESTAdapter。不幸的是,重新加载我的RESTful模型会导致DS.RecordArray中的记录数量翻倍。因此,您可以看到控制台正在记录(在每次重新加载时)RecordArray中有两条记录。
当我使用我的RestAdapter运行时,计数为2 ... 4 ... 8 ... 16 ....等等。所以我不确定为什么它每次都会加倍,但如果有人知道为什么 - 或者更好的是,另一种方法来重新加载这些记录 - 我会非常感激。谢谢。
答案 0 :(得分:4)
如果您需要在已加载记录后刷新记录集合,则可以执行以下操作:
App.ThingsRoute = Ember.Route.extend({
model: function () {
return this.store.find('thing');
},
actions: {
refreshThings: function () {
var controller = this.controller;
this.store.find('thing').then(function (things) {
controller.set('content', things);
});
}
}
});
这将简单地再次获取所有thing
s,并在promise解析时将记录数组设置为控制器上的内容。如果回来的物品已经在您的商店中编目(ids已经存在),那么您将无法获得大量重复记录;东西会得到更新。如果您之前未了解过新记录,那么您现在可以在ThingsController
上获取这些记录。
如果您正在进行某种类型的查询,这也很有用:
this.store.find('thing', {color: 'red'})