我试图从动作方法调用第二个控制器方法。 我可以使用
调用第二个控制器方法this.controller.get('controllers.secondController').method();
如何从动作方法调用另一个控制器的方法? 我知道的工作就像调用当前操作方法的控制器,后者又调用第二个控制器方法。
this.callFirstControllerMethod();
然后使用
this.controller.get('controllers.secondController').method();
但有没有办法直接调用第二个控制器方法?
答案 0 :(得分:2)
通常这种逻辑不应该在控制器上,控制器应该只有与UI或模型显示相关的动作。
我建议在路线中添加一个动作,它可以访问控制器并调用你需要的任何方法。
// route.js
actions: {
doSomething: function() {
var controllerA = this.controllerFor('firstController');
var controllerB = this.controllerFor('secondController');
controllerA.doSomething();
controllerB.doSomethingElse();
}
}