2012-12-19 70 views

回答

4

,取決於您所使用在其燼數據的版本(和現在,你用什麼作爲適配器),這可能是不同的。行爲changed in version 9。在此之前,您可以說record.isDirtyBecause('belongsTo'),並且如果由於belongsTo關係已更改而使記錄被標記爲髒,則它將返回true。現在,由於商店和適配器之間的職責發生了一些變化,所以由適配器來處理。

如果您還需要在您的適配器信息,這將是你的責任,做任何簿記在dirtyRecordsForAttributeChangedescribed above

6

作爲灰燼-數據的β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')