有沒有辦法知道爲什麼記錄在灰燼數據中處於髒狀態,我的意思是什麼是已更改的屬性和關係。如何知道爲什麼記錄在灰燼數據中是髒的
我在調用findAll之後有isDirty = true,我想調試爲什麼發生這種情況。
非常感謝
有沒有辦法知道爲什麼記錄在灰燼數據中處於髒狀態,我的意思是什麼是已更改的屬性和關係。如何知道爲什麼記錄在灰燼數據中是髒的
我在調用findAll之後有isDirty = true,我想調試爲什麼發生這種情況。
非常感謝
,取決於您所使用在其燼數據的版本(和現在,你用什麼作爲適配器),這可能是不同的。行爲changed in version 9。在此之前,您可以說record.isDirtyBecause('belongsTo')
,並且如果由於belongsTo
關係已更改而使記錄被標記爲髒,則它將返回true
。現在,由於商店和適配器之間的職責發生了一些變化,所以由適配器來處理。
如果您還需要在您的適配器信息,這將是你的責任,做任何簿記在
dirtyRecordsForAttributeChange
鉤described above。
作爲灰燼-數據的β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')