2014-10-27 54 views
0

我想切換兄弟項目控制器上的屬性。從我讀過的,我需要通過父控制器,然後爲每個項目控制器設置屬性。切換兄弟項目控制器屬性

對於下面的示例,當用戶點擊食品時,它會擴展類型。然後我希望它切換所有兄弟項目控制器上的「不透明度」屬性。

App.IndexController = Ember.ArrayController.extend({ 
    itemController: 'type', 

    actions: { 
     unselectedOpacity: function(t){ 
     // select children controller 
     // except for clicked item 
     // set 'opacity' property 
     } 
    } 
}) 

App.TypeController = Ember.ObjectController.extend({ 
    show: false, 

    actions: { 
    showit: function(){ 
     this.toggleProperty('show') 

     this.get('parentController').send('unselectedOpacity', this) 
    } 
    } 
}) 

my jsbin上的實際代碼。

+0

[是否合理使用ObjectController和ArrayController?](http://stackoverflow.com/questions/11209740/does-it-make-sense-to-use-objectcontroller-and-arraycontroller-一起) – Asgaroth 2014-10-27 18:37:25

+0

我的問題是切換每個項目控制器上的屬性,而不是類綁定。 – 2014-10-27 18:52:55

+0

它仍然適用,您可以在視圖中更改模型的屬性,該示例使用類,但其背後的邏輯相同。只有'selected'類型才具有true屬性,而其他屬性則爲false。一個數組控制器並不真正有權訪問itemControllers。你可以嘗試使用'needs',但那不太好。 – Asgaroth 2014-10-27 18:59:49

回答

0

我設法弄清楚了 - 我可以在控制器中使用this.setEach()

我不認爲我太過於擔心最初的問題。我正在尋找的是一種同時改變兄弟控制器和當前控制器屬性的方法。

my JSbin - 我還是要清理代碼。