Ember.js 将对象推到灰烬阵列上时,灰烬为什么会抱怨?

Ember.js 将对象推到灰烬阵列上时,灰烬为什么会抱怨?,ember.js,ember-model,Ember.js,Ember Model,我将余烬RC6.1与一起使用。当我将模型类的adapter属性设置为Ember模型的RESTAdpater类的实例并执行findAll时,会为添加到结果Ember数组中的每个对象抛出断言。堆栈跟踪显示对象被推送到数组上,插入,然后被替换。我不知道为什么会发生后者(替换)。这可能是隐式排序的结果 对于每次推送,都会抛出一个断言,声明在修改RecordArray(从ArrayProxy继承)的实例之前,应设置该实例的content属性 Assertion failed: The content pr

我将余烬RC6.1与一起使用。当我将模型类的
adapter
属性设置为Ember模型的
RESTAdpater
类的实例并执行
findAll
时,会为添加到结果Ember数组中的每个对象抛出断言。堆栈跟踪显示对象被推送到数组上,插入,然后被替换。我不知道为什么会发生后者(替换)。这可能是隐式排序的结果

对于每次推送,都会抛出一个断言,声明在修改
RecordArray
(从
ArrayProxy
继承)的实例之前,应设置该实例的
content
属性

Assertion failed: The content property of Ember.RecordArray should be set before modifying it
结果数组的行为正常,但我想知道这是余烬模型中的错误还是余烬本身的错误。我假设我的代码不对这个bug负责,因为除了根据Ember模型的文档从API获取数据之外,我没有做任何异常的事情

我在下面添加了堆栈跟踪

(anonymous function) application.js:6108
Ember.assert application.js:5799
Ember.ArrayProxy.Ember.Object.extend._replace application.js:17977
Ember.ArrayProxy.Ember.Object.extend._insertAt application.js:17992
Ember.ArrayProxy.Ember.Object.extend.pushObject application.js:18036
superWrapper application.js:6826
Ember.Model.reopenClass.addToRecordArrays application.js:5251
(anonymous function) application.js:5242
sendEvent application.js:7843
Ember.Evented.Ember.Mixin.create.trigger application.js:16867
Ember.Model.Ember.Object.extend.load application.js:4792
Ember.Model.reopenClass.findFromCacheOrLoad application.js:5280
(anonymous function) application.js:4453
Ember.RecordArray.Ember.ArrayProxy.extend.materializeData application.js:4452
Ember.RecordArray.Ember.ArrayProxy.extend.load application.js:4435
Ember.RESTAdapter.Ember.Adapter.extend.didFindAll application.js:5585
(anonymous function) application.js:5576
invokeCallback application.js:12843
(anonymous function) application.js:12886
EventTarget.trigger application.js:12674
(anonymous function) application.js:12941
DeferredActionQueues.flush application.js:10648
Backburner.end application.js:10338
Backburner.run application.js:10377
Ember.run application.js:10859
settings.success application.js:5697
fire application.js:38117
self.fireWith application.js:38228
done application.js:45154
callback
更新:对
pushObject
的调用由Ember模型执行。我添加了
addToRecordArray
的实现,该方法将记录添加到
RecordArray
的实例中

addToRecordArrays: function(record) {
  if (this._findAllRecordArray) {
    this._findAllRecordArray.pushObject(record);
  }
  if (this.recordArrays) {
    this.recordArrays.forEach(function(recordArray) {
      recordArray.pushObject(record);
    });
  }
}

我已还原了导致此问题的提交。

您是否可以将您尝试推入的代码共享到
RecordArray
?当然可以。然而,重要的是要知道这是由余烬模型完成的。这是否应该标记为余烬模型Github回购协议上的问题?我也看到了这一点…作为一个问题提交:我对提交一个问题有点谨慎,因为我找不到关于这个问题的任何报告。但是,很高兴知道其他人可以重现这个问题。在查看了之后,断言和相应的堆栈跟踪是有意义的。