是否有办法在ember-data中重新加载整个存储?或者对里面的物品进行分类?
应该是这样的:
- 用户点击"添加"按钮
- 新增记录
- store已提交
- 用户被传送到列出物品的状态
- 他的新条目的顺序是正确的
要做到这一点,我必须在模型中传输。(这不是模型的角色!)或在传输后刷新存储。
有人有类似的问题吗?
我正在使用ember-data revision 12
编辑
我用了:
Ember.run.later(this, function(){
this.transitionToRoute('list');
}, 500);
给store一些时间。但是新的条目总是在列表的底部。我仍然需要重新加载整个存储或以某种方式对其进行排序。
编辑# 2
所以我在这里做了一些返工。在我的模板中,我使用:
{{#each arrangedContent}}
使用排序数据,在路由中我有:
App.AdsRoute = Ember.Route.extend({
model: function(){
return App.Ad.find();
},
sortProperties: ['id']
});
但它不起作用。看起来Route不是ArrayController。如果我从ArrayController
扩展额外的AdsController
它也不起作用
Ember arraycontroller有几个排序内容的选项:
http://emberjs.com/api/classes/Ember.ArrayController.html property_sortAscending
您可以设置要排序的字段以及要使用的顺序。当您使用这些时,您将希望将视图绑定到arrangedContent,而不仅仅是普通的旧内容。
在我的应用程序中,我通常在记录被持久化后返回到列表状态:
var observer, _this = this;
observer = function(target, path) {
if (target.get(path) === 'saved') {
target.removeObserver(path, null, observer);
return _this.get('target.router').transitionTo('apps.index');
}
};
我不确定商店是否有重新加载机制(单个记录),但如果我找到答案,我可以更新此响应。