javascript - 从另一个 Controller 触发 Controller 的 "actions"

标签 javascript ember.js

我需要从 MyControllerhandleUpdate 方法触发我的 Summary Controller 中的操作方法。

我的 Controller :

MyController = MyController.extend({

  needs: ['application', 'Summary'],    

  handleUpdate: function() {
    var controller = this;

    Ember.run.later(function() {
      ...
      ...
    }.bind(this), 100);
  }.observes('isUpdating')
}

更新 Controller :

SummaryController.reopen({
  actions: {
    update: function(source, callback) {
    ...
    ...
    }
  }
});

谢谢

最佳答案

获取 Controller 实例,然后使用方法 send 触发操作。

MyController = MyController.extend({

  needs: ['application', 'summary'],    

  handleUpdate: function() {
    var controller = this,
        summaryController = this.get('controllers.summary');

    summaryController.send('update');

    Ember.run.later(function() {
      ...
      ...
    }.bind(this), 100);
  }.observes('isUpdating')
}

关于javascript - 从另一个 Controller 触发 Controller 的 "actions",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21681147/

相关文章:

javascript - 在事件调用的组件方法中访问组件属性

javascript - Ember 嵌套路线和模型不渲染(根本)

javascript - 如何将包含图像文件的流发送到环回中的远程方法?

javascript - 在 EmberJS 中重定向

javascript - 如何异步运行 useState

javascript - Angular 2 外部化(属性文件)

javascript - Ember.js 路由器和 initialState 中的嵌套路由

javascript - Ember cli 应用程序具有不同的适配器类型?

javascript - Python Selenium : Unable to click button

javascript - 如何在 amcharts 中设置饼图容器的高度?