gpt4 book ai didi

ember.js - Ember 数据 : how to set isDirty for a record?

转载 作者:行者123 更新时间:2023-12-04 15:00:31 24 4
gpt4 key购买 nike

我有一个 details: DS.attr('recursive_object')自定义转换(它是一个递归对象)。
details attr 可以就地编辑,而无需更改实际的对象引用(例如,编辑细节 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但这些都没有奏效。

有任何想法吗?

最佳答案

我从另一个问题中得到了一些线索:How to manually set an object state to clean (saved) using ember-data

特别是,关于:

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

关于ember.js - Ember 数据 : how to set isDirty for a record?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16158329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com