24

例如我有一个这样的控制器:

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

我的问题是:

  1. methodB如何调用methodC
  2. methodA如何调用methodB
4

1 回答 1

46

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

希望能帮助到你。

于 2013-09-29T07:03:00.237 回答