从emberjs中的控制器动作调用方法

时间:2013-09-29 06:46:47

标签: ember.js

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

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

我的问题是:

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

1 个答案:

答案 0 :(得分:45)

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

希望它有所帮助。