例如我有一个像这样的 Controller :

App.theController = Ember.ArrayController.extend({
  methodA:funtcion() {},
  actions: {
    methodB:function(){},
    methodC:function(){}
  }
});

我的问题是:
  • methodB如何调用methodC
  • 方法A如何调用方法B
  • 最佳答案

    您必须使用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作为游乐场。

    希望能帮助到你。

    关于ember.js - 从emberjs中的 Controller Action 调用方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19075263/

    10-08 23:04