【问题标题】:Using store.all adds items to controller使用 store.all 将项目添加到控制器
【发布时间】:2015-02-17 01:48:36
【问题描述】:

我正在使用store.all 在我的商店中查找模型的所有当前实例,然后将其设置为我的控制器中路由的模型,如下所示:

model: function() {
    this.store.all('activeShip');
}

这很好,但是当我为该类型创建新模型实例时,我的行为有些奇怪。当我这样做时,它会自动添加到控制器模型中,即使我从未addObject。我创建了a little demo here 来了解我的意思。创建记录后,它会立即包含在模型中并在视图中更新。我认为store.all 只需运行一次,收集所有记录并完成;在创建新记录时不会继续更新。

这是期望的行为、错误还是我做错了什么?谢谢。

编辑:认为这两个问题与我有关:#2375#2542

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    这是预期的行为,但在您的情况下可能不希望出现。这实际上是对 Ember Data 的一个常见批评——在更改被持久化之前无法“分叉”模型或 RecordArray。

    其次,对this.store.all 的调用会返回DS.RecordArray,它实际上会在新记录添加到存储时更新。如果您不想显示新记录,请考虑使用return this.store.all('post').filterProperty('isNew', false); 之类的内容来阻止它显示新记录。一旦它们被持久化在服务器上,它将显示在数组中,但不会显示在之前。

    附:除非您 return this.store.all('activeShip');(注意返回),否则您实际上并没有“将其设置为模型”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多