Mam niestandardową transformację details: DS.attr('recursive_object')
(jest to obiekt rekursywny).Ember Data: jak ustawić isDirty na rekord?
Atra details
można edytować na miejscu, bez zmiany rzeczywistego obiektu (np. Edytowane są szczegóły szczegółowe na temat szczegółów atr). To jednak nie powoduje flagi isDirty
rekordu nadrzędnego.
Jak mogę ręcznie powiadomić rekord DS.Model, że został zaktualizowany?
Definition Model:
App.MyRecord = DS.Model.extend
details: DS.attr "recursive object"
Montaż 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.
Czego próbowałem:
Owijanie record.makeChangeToDetails()
z will/didSetProperty
połączeń:
record.send 'willSetProperty', name: 'details'
record.makeChangeToDetails()
record.send 'didSetProperty', name: 'details'
Wywołanie notifyPropertyChange
record.notifyPropertyChange 'details'
Wywołanie set
i przekazując mu ten sam obiekt
record.makeChangeToDetails()
record.set 'details', record.get('details')
Próbowałem również wysyłając różne inne DS.model stwierdza wydarzenia stąd: https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/model/states.js tym didChangeData
, becameDirty
, ale żaden z nich nie zadziałał.
Wszelkie pomysły?