Ember.js 余烬数据:如何设置记录的isDirty?

Ember.js 余烬数据:如何设置记录的isDirty?,ember.js,ember-data,Ember.js,Ember Data,我有一个详细信息:DS.attr('recursive_object')自定义转换(它是一个递归对象) detailsattr可以就地编辑,而不会更改实际对象引用(例如,编辑details attr上的子细节)。但是,这不会触发父记录的isDirty标志 如何手动通知DS.Model记录已更新? 模型定义: App.MyRecord = DS.Model.extend details: DS.attr "recursive object" 编辑详细信息 # record is an ins

我有一个
详细信息:DS.attr('recursive_object')
自定义转换(它是一个递归对象)

details
attr可以就地编辑,而不会更改实际对象引用(例如,编辑details attr上的子细节)。但是,这不会触发父记录的
isDirty
标志

如何手动通知DS.Model记录已更新?

模型定义:

App.MyRecord = DS.Model.extend
  details: DS.attr "recursive object"
编辑
详细信息

# record is an instance of App.MyRecord
# makes a change to the record's details attr 
record.makeChangeToDetails()
record.get('isDirty') # still false because Ember doesn't know that a sub-detail changed.
我尝试过的事情:

使用
will/didSetProperty
调用包装
record.makeChangeToDetails()

record.send 'willSetProperty', name: 'details'
record.makeChangeToDetails()
record.send 'didSetProperty', name: 'details'
调用notifyPropertyChange

record.notifyPropertyChange 'details'
调用
set
并将同一对象传递给它

record.makeChangeToDetails()
record.set 'details', record.get('details')
我还尝试从这里发送各种其他DS.model State事件: 包括
didChangeData
becameDirty
,但这些都不起作用


有什么想法吗?

我从另一个问题中得到了一些线索:

特别是,关于:


record.get('stateManager').Transitiono('loaded.saved'))

使用
1.0.0-beta.7+canary.b45e23ba
,这似乎可以完成以下任务:

> record.isDirty()
< false
> record.send('becomeDirty')
< undefined
> record.isDirty()
< true
>record.isDirty()
record.send('becomeDirty')
<未定义
>record.isDirty()