2013-09-29 6 views

ответ

42

Вы должны использовать this.send([methodName]), чтобы получить методы, называемые правильными у:

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'); 
    } 
    } 
}); 

Вот простой jsbin как детская площадка.

Надеюсь, это поможет.

+0

Не совсем тот же вопрос, но мне не удается обновить мое приложение. Мне нужно вызвать действия, но они что-то возвращают. см. http://jsbin.com/OreraGE/1/edit. Возможно, это просто, но я заблокирован здесь ... –

+0

@ sly7_7 в настоящее время АФК будет смотреть на него, как только я вернусь домой :) – intuitivepixel

+1

@ sly7_7, Похоже, игра с действиями - это односторонняя вещь, означающая, что никакое возвращаемое значение не передается вместе, чтобы заставить его работать жестко, вы могли бы определить метод непосредственно на объекте и вне хэша действий и вызвать метод непосредственно с помощью this.methodC() 'see вот что я имею в виду: http://jsbin.com/eBegIPAy/1/edit – intuitivepixel

Смежные вопросы