ember データでレコードがダーティな状態になっている理由を知る方法はありますか?つまり、変更された属性と関係は何ですか?
findAll を呼び出した後に isDirty = true になっています。これが発生する理由をデバッグしたいと思います。
どうもありがとう
ember データでレコードがダーティな状態になっている理由を知る方法はありますか?つまり、変更された属性と関係は何ですか?
findAll を呼び出した後に isDirty = true になっています。これが発生する理由をデバッグしたいと思います。
どうもありがとう
Ember-Data ベータ 6 以前の時点では、changedAttributes()
変更された属性のハッシュとその初期値/現在値を返す関数があります。http://emberjs.com/guides/models/working-with-records/を参照してください。
例えば:
person.changedAttributes(); //=> { isAdmin: [false, true] }
changedAttributes()
観察できるプロパティではないことに注意してください。ただし、そうする必要がある場合は、モデルで変更される可能性のあるすべてのプロパティを観察し、changedAttributes()
計算されたプロパティ/観察関数内をチェックできます。
(不自然な)例:
checkAttributes: (->
changed = @get('model').changedAttributes()
if changed['name'] && Object.keys(changed).length == 1
# Do something if name is the only changed attribute
).property('name', 'alias', 'description')
使用している ember-data のバージョン (および現在、アダプターとして使用しているもの) によって、これは異なる場合があります。バージョン 9 で動作が変更されました。それ以前はrecord.isDirtyBecause('belongsTo')
、リレーションシップが変更されたためにレコードがダーティとマークされていた場合、belongsTo
を返すことができましたtrue
。現在、ストアとアダプターの間の責任の一部が変化しているため、これを処理するのはアダプターに任されています。
アダプターでこの情報が必要な場合は、上記
dirtyRecordsForAttributeChange
のフックで簿記を行う必要があります。