Ember data 事件是否应该传播到hasMany关系中的记录?
我在两个Ember data 事件是否应该传播到hasMany关系中的记录?,ember-data,Ember Data,我在两个DS.Model类之间有以下关系: App.DocumentType = DS.Model.extend ... propertyTypeJoins: DS.hasMany("App.DocumentTypePropertyType") App.DocumentTypePropertyType = DS.Model.extend documentType: DS.belongsTo('App.DocumentType') 子记录始终嵌入,从不单独保存: App.Adapt
DS.Model
类之间有以下关系:
App.DocumentType = DS.Model.extend
...
propertyTypeJoins: DS.hasMany("App.DocumentTypePropertyType")
App.DocumentTypePropertyType = DS.Model.extend
documentType: DS.belongsTo('App.DocumentType')
子记录始终嵌入,从不单独保存:
App.Adapter.map 'App.DocumentType'
propertyTypeJoins:
embedded: 'always'
当我提交带有documentType
记录和n相关DocumentTypePropertyType
记录的事务时,我得到以下错误:
“试图在状态为rootState.loaded.updated.uncommitted时处理上的事件'didCommit'。调用时未定义”
查看代码时,我意识到适配器的didsavecord
方法向每个嵌入的记录发送didCommit
事件。这似乎很好,因为子项声明与父项一起保存(请参见上面的embedded:'always'
)
引发此错误的原因是willCommit
事件未传播到子级,因此它们仍处于uncommitted
状态,无法处理处于该状态的didCommit
。父级本身已转换为inFlight
,因此不会抛出任何错误
在我看来,观察到的行为是不一致的。要么将所有事件发送给子事件,要么不发送。否则会出现各种不一致的行为
看来我是在与余烬数据作对,而不是与之作对,所以我停下来思考我做错了什么
你能告诉我吗