如何从另一个控制器访问另一个控制器的操作

r-r*_*r-r 1 ember.js ember-data ember-cli

我刚刚将我的Ember应用程序升级到最新版本,但在测试其功能时,某些操作无效.我之前在旧版本中运行良好的代码如下.

export default Ember.Controller.extend({
needs: 'sales-order',
actions: {
    showModal: function(mode){
        this.get('controllers.sales-order').send('showModal', mode);
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

看起来" 需求 "是折旧的.

loc*_*cks 5

而不是needs你应该使用Ember.inject.controller.它应该看起来像这样:

export default Ember.Controller.extend({
  salesOrder: Ember.inject.controller(),

  actions: {
    showModal(mode) {
      this.get('salesOrder').send('showModal', mode);
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

您可以在" 管理控制器之间依赖关系"指南中找到更多信息.