事件是否应该传播到hasMany关系中的记录?

podio 发布于 2019-03-09 最后更新 2019-03-09 14:32 0 浏览

我有两个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记录提交事务时,出现以下错误: "Attempted to handle event 'didCommit' on <App.DocumentTypePropertyType:ember1806:38072> while in state rootState.loaded.updated.uncommitted. Called with undefined" 查看代码,我意识到适配器的didSaveRecord方法会向每个嵌入式记录发送didCommit事件。这似乎是完全正常的,因为子元素们被宣布与父级一起被保存(见上面的embedded: 'always')。 由于willCommit事件未传播给子级,因此它们仍处于uncommitted状态,并且无法在该状态下处理didCommit,因此引发错误。父级本身已转换为inFlight,因此没有错误发生。 在我看来,观察到的行为是不一致的。要么所有的事件都发送给子元素,要么没有。否则会出现各种不一致的行为。 看起来我正在对付,而不是与呃数据,所以我停下来思考我做错了什么。 你能告诉我吗?
已邀请: