2013-09-29 20 views

Odpowiedz

42

Musisz użyć metody this.send([methodName]), aby uzyskać poprawne metody y:

var App = Ember.Application.create({ 
    ready: function() { 
    console.log('App ready'); 
    var theController = App.theController.create(); 
    theController.send('methodC'); 
    } 
}); 

App.theController = Ember.ArrayController.extend({ 
    methodA:function(){ 
    //How can methodA calling methodB 
    this.send('methodB'); 
    console.log('methodA called'); 
    }, 
    actions:{ 
    methodB:function(){ 
     //How can methodB calling methodC 
     this.send('methodC'); 
     console.log('methodB called'); 
    }, 
    methodC:function(){ 
     console.log('methodC called'); 
    } 
    } 
}); 

Oto prosty jsbin jako plac zabaw.

Mam nadzieję, że to pomaga.

+0

To nie jest to samo pytanie, ale nie mogę zaktualizować aplikacji. Muszę nazwać działania, ale one zwracają coś. zobacz http://jsbin.com/OreraGE/1/edit To prawdopodobnie proste, ale jestem tu zablokowany ... –

+0

@ sly7_7 obecnie AFK będzie to wyglądać jak tylko wrócę do domu :) – intuitivepixel

+1

@ sly7_7, Wygląda na to granie z akcjami jest rzeczą jednoznaczną, co oznacza, że ​​nie przekazuje się żadnej wartości zwracanej, aby było ciężko pracować, możesz zdefiniować metodę bezpośrednio na obiekcie i poza hashem akcji, i wywołać metodę bezpośrednio za pomocą 'this.methodC()' zobacz tutaj co mam przez to na myśli: http://jsbin.com/eBegIPAy/1/edit – intuitivepixel