繁体   English   中英

ember-data如何重新加载/排序存储记录

[英]ember-data how to reload/sort store records

有没有办法在ember-data中重新加载整个商店? 还是对里面的物品进行排序?

它应该像这样:

  • 用户单击“添加”按钮
  • 新记录已添加
  • 存储已提交
  • 用户被传输到列出项目的状态
  • 他的新条目顺序正确

为此,我必须要么在model.didCreate中进行传输(不应该是模型的角色),要么在传输后刷新存储。

有人有类似的问题吗?

我正在使用余烬数据修订版12

编辑

我用了:

Ember.run.later(this, function(){
    this.transitionToRoute('list');         
}, 500);

给存储一些时间。 但是,再次,新条目始终位于列表的底部。 我仍然需要重新加载整个商店或以某种方式对其进行排序。

编辑#2

所以我在这里做了很少的返工。 在我的模板中,我使用:

{{#each arrangedContent}}

要使用排序的数据并在路由中使用:

App.AdsRoute = Ember.Route.extend({
    model: function(){
        return App.Ad.find();
    },
    sortProperties: ['id']
});

虽然没有用。 看起来Route不是ArrayController。 如果我能赚到更多的AdsController延伸自ArrayController它不工作也没有。

Ember ArrayControllers具有一些用于对内容进行排序的选项:

http://emberjs.com/api/classes/Ember.ArrayController.html#property_sortAscending

您可以设置要排序的字段以及要使用的顺序。 当您使用这些内容时,您将需要将视图绑定到rangedContent,而不仅仅是普通的旧内容。

在我的应用程序中,记录通常会在保留后返回到列表状态:

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');   
  } 
};

我不确定该商店是否具有重新加载机制(单个记录有),但是如果找到答案,则可以更新此响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM