カスタム変換がありdetails: DS.attr('recursive_object')
ます (再帰オブジェクトです)。
attr は、実際のオブジェクト参照を変更せずにそのdetails
場で編集できます (たとえば、details attr のサブディテールが編集されます)。isDirty
ただし、これは親レコードのフラグをトリガーしません。
DS.Model レコードが更新されたことを手動で通知するにはどうすればよいですか?
モデル定義:
App.MyRecord = DS.Model.extend
details: DS.attr "recursive object"
編集 details
# 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.
私が試したこと:
呼び出しrecord.makeChangeToDetails()
でラッピング:will/didSetProperty
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 状態イベントを送信しようとしました: https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/model/states.js
を含むdidChangeData
、becameDirty
しかしこれらのどれも機能しませんでした。
何か案は?