2014-02-22 80 views
2

我正在使用陣列控制器來存儲一些物品數組。陣列控制器中物品的觀察者

每個項目都有屬性isChecked(或設置爲true或false)和值。

我的陣列控制器看起來像

Application.PlatformsController = Ember.ArrayController.extend({ 

contentPropertyFirst: function() { 
    return true; 
}.property("[email protected]"), 

contentPropertySecond: function() { 
    return true; 
}.property("[email protected]"),                           

contentPropertyThird: function() { 
    return true; 
}.property("content"), 

contentObserver: function() { 
    return true; 
}.observes("content"), 

init: function() { 
    this.setData(); 
}, 

setData: function() { 

    Appication.Services.fetch('Data') //returns data from my service. 
    .done(function (data) { 
     this.get('content').clear(); 
     $.each(data, function (index, item) { 
      this.get('content').pushObject(item); 
      this.get('content')[index].isChecked = true; 
     }); 
    }) 
    .fail(function() { 
     alert('Error'); 
    }); 
} 

在另一個控制器我設置其屬性之一上述控制器

Application.EditPlatformsController = Application.UI.Controller.extend({ 
start: function() { 
    this.set('listController',Application.PlatformsController.create()); 
}, 

在我看來,我呈現的複選框WRT到列表在listController中可用的數組項。

{{#each listController}} 
    {{view CoreCheckbox checkedBinding="isChecked"}} {{ value }} 
    {{/each }} 

在上述情況下,只有contentObserver方法被推動項內容時調用。

我想要做檢查取消選中的複選框操作有所行動。

請協助我這樣做。

回答

0

計算屬性在被調用時會動態更新。如果你想讓觀察者在改變時開火,請將「屬性」改爲「觀察」

contentPropertyFirst: function() { 
    return true; 
}.observes("[email protected]"), 

contentPropertySecond: function() { 
    return true; 
}.observes("[email protected]"),                           

contentPropertyThird: function() { 
    return true; 
}.observes("content"), 

contentObserver: function() { 
    return true; 
}.observes("content"), 
+0

謝謝詹姆斯。我早些時候嘗試過,但不知道爲什麼它第一次不起作用。任何方式感謝您的答覆。 – Avinash