對於一個belongsTo我添加了一個觀察者。
例如在我的我有一個belongsTo省的人。在我的表格中,我爲各省選擇了一個餘燼選擇。在Person模型我添加此觀察者......
provinceChanged: function() {
this.send('becomeDirty');
}.observes('province')
我也是根據isDirty用於顯示/隱藏保存/取消按鈕,和而觀察者在標記記錄做了很好的工作髒,如果我點擊取消,我會回滾,但我也需要將記錄標記爲乾淨。我在取消操作中的人員控制器中執行此操作。
cancel: function() {
this.get('model').rollback();
this.set('isEditing', false);
this.get('model').adapterWillCommit();
this.get('model').adapterDidCommit();
}
這一切似乎工作得很好。
對於另一個項目上的hasMany,我們在控制器上使用了一個計算屬性。
isThisOrChildrenDirty: function() {
return this.get('isDirty') || this.get('authors').get('isDirty');
}.property('isDirty','[email protected]')
然後,不是檢查isDirty,而是檢查isThisOrChildrenDirty。
希望有幫助。
嘿spDuchamp,我試過你hasMany關係的第一個代碼示例。它可以工作,但是我的父記錄在加載父記錄後會立即變色。我想知道是否有辦法只在孩子改變時染上父母記錄,而不是當關系最初被填充時。 –