2014-04-14 10 views
5

Ho un semplice controller di array che ha l'attributo itemController definito. Vorrei inviare un'azione da ArrayController al controller di supporto di ciascun elemento. Non sono sicuro di come "abbattere" questa azione però.Invio di un'azione all'elemento controller dal controller di array

+0

mi sono reso conto che l'ArrayController ha una proprietà _subControllers in cui posso utilizzare per richiamare le varie azioni. Fare uso di questo campo diventerebbe problematico? – grouma

+0

Cerca di non utilizzare proprietà private, in quanto queste possono cambiare ogni volta che aggiorni una libreria (Ember.js in questo caso) –

risposta

4

È possibile scorrere il controller stesso e restituire il controller dell'articolo.

App.IndexController = Em.ArrayController.extend({ 
    itemController: 'foo', 
    actions:{ 
    talkToChildren:function(){ 
     this.forEach(function(itemController){ 
     itemController.send('foo'); 
     }); 
    } 
    } 
}); 

App.FooController = Em.ObjectController.extend({ 
    count: 1, 
    actions:{ 
    foo:function(){ 
     this.incrementProperty('count'); 
    } 
    } 
}) 

http://emberjs.jsbin.com/fagosifu/1/edit

Problemi correlati