Ember.js 使用store.all将项目添加到控制器

Ember.js 使用store.all将项目添加到控制器,ember.js,ember-data,Ember.js,Ember Data,我正在使用store.all查找存储中某个模型的所有当前实例,然后将其设置为控制器中路由的模型,如下所示: model: function() { this.store.all('activeShip'); } 这很好,但在为该类型创建新模型实例时,我有一些奇怪的行为。当我这样做时,它会自动添加到控制器模型中,即使我从未添加对象。我创造出来就是为了明白我的意思。创建记录后,它将立即包含在模型中并在视图中更新。我想store.all只运行一次,收集所有记录并完成;不会在创建新记录时继续更

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

model: function() {
    this.store.all('activeShip');
}
这很好,但在为该类型创建新模型实例时,我有一些奇怪的行为。当我这样做时,它会自动添加到控制器模型中,即使我从未添加对象。我创造出来就是为了明白我的意思。创建记录后,它将立即包含在模型中并在视图中更新。我想store.all只运行一次,收集所有记录并完成;不会在创建新记录时继续更新

这是期望的行为,一个bug还是我做错了什么?谢谢


编辑:认为这两个问题可能是相关的:,。

这是预期的行为,但在您的情况下可能不是期望的。事实上,对于余烬数据的一个常见批评是,在更改被持久化之前,无法派生模型或RecordArray

其次,对this.store.all的调用将返回一个DS.RecordArray,当向存储添加新记录时,它将实际更新。如果您不想显示新记录,请考虑使用类似于此返回的东西。防止它显示新记录。一旦它们在服务器上持久化,它将显示在数组中,但不会在之前显示

另外,除非您返回这个.store.all'activeShip',否则您实际上并没有将其设置为模型;注意返回