我有一個AlertsController其中有多個AlertController下面的孩子。當用戶點擊警報時,我將isSelected標記爲AlertManager中的true爲AlertView。然後我在AlertsController中有一個計算屬性,它應該返回所選警報的數量。Ember.js 1.0.0:基於子項目控制器屬性未更新的父控制器中的計算屬性
的AlertsController和AlertController是這樣的:
App.AlertsController = Ember.ArrayController.extend({
itemController: 'Alert',
//numSelected doesn't update when isSelected flag in an alert changes
numSelected: function(){
return this.filterProperty('isSelected', true).get('length');
}.property('@each.isSelected')
});
App.AlertController = Ember.ObjectController.extend({
isSelected : false,
});
我知道在AlertController的isSelected屬性更新但值在AlertsController numSelected只計算一次,當頁面加載。
我重新創建我在下面的小提琴問題:
的jsfiddle:http://jsfiddle.net/WLAnF/8/
有誰知道我可能是錯在這裏幹什麼?謝謝您的幫助!
謝謝你的解決方案!我對提供的「內容」對象有點困惑。這是否意味着您想要從另一個控制器訪問屬性,而無法在「擁有」控制器中明確定義該屬性?看起來好像讓代碼更難閱讀,因爲在查看AlertController代碼時,您不會知道該屬性存在。 – Sarus