我正在使用store.all
在我的商店中查找模型的所有当前实例,然后将其设置为我的控制器中的路径模型,如下所示:
model: function() {
this.store.all('activeShip');
}
这很好用,但是当我为这种类型创建一个新的模型实例时,我有一些奇怪的行为。当我这样做时,它会自动添加到控制器模型中,即使我从不addObject
。我已创建a little demo here以了解我的意思。创建记录后,它将包含在模型中并在视图中更新。我认为store.all
只运行一次,收集所有记录并完成;在创建新记录时不会继续更新。
这是期望的行为,错误还是我做错了什么?感谢。
答案 0 :(得分:0)
这是预期的行为,但在您的情况下可能不需要。这实际上是对Ember Data的一个常见批评 - 在变更持续存在之前无法“分叉”模型或RecordArray。
其次,对this.store.all
的调用会返回DS.RecordArray
,它会在将新记录添加到商店时实际更新。如果您不想显示新记录,请考虑使用return this.store.all('post').filterProperty('isNew', false);
之类的内容来阻止它显示新记录。一旦它们持久存储在服务器上,它将显示在数组中,但不会显示在之前。
P.S。除非你return this.store.all('activeShip');
(注意返回),否则你实际上并没有“将其设置为模型”。