从emberjs中的action方法调用另一个控制器方法

时间:2014-12-16 22:01:49

标签: ember.js controller

我试图从动作方法调用第二个控制器方法。 我可以使用

调用第二个控制器方法
this.controller.get('controllers.secondController').method();

如何从动作方法调用另一个控制器的方法? 我知道的工作就像调用当前操作方法的控制器,后者又调用第二个控制器方法。

this.callFirstControllerMethod();

然后使用

this.controller.get('controllers.secondController').method();

但有没有办法直接调用第二个控制器方法?

1 个答案:

答案 0 :(得分:2)

通常这种逻辑不应该在控制器上,控制器应该只有与UI或模型显示相关的动作。

我建议在路线中添加一个动作,它可以访问控制器并调用你需要的任何方法。

// route.js
actions: {
  doSomething: function() {
    var controllerA = this.controllerFor('firstController');
    var controllerB = this.controllerFor('secondController');

    controllerA.doSomething();
    controllerB.doSomethingElse();
  }
}