在EmberCLI构建的EmberJS中,如何在不同的控制器上调用方法?

时间:2014-08-21 13:51:14

标签: javascript ember.js requirejs ember-cli

我正在使用EmberCLI在Ember构建一个应用程序。

在我的顶部导航(controllers / navigation / top.js)中,我有一个按钮点击触发的动作。此操作应打开左侧导航(controllers / navigation / left.js)。

我的顶级导航控制器:

import Ember from "ember";

export default Ember.Controller.extend({
  actions: {
    toggleMenu: function() {
      // I need to call toggleProperty on the left navigation controller. 
      [leftNavigationController].toggleProperty('visible');
    }
  }
});

如何让另一个控制器实例调用类似toggleProperty的方法?

1 个答案:

答案 0 :(得分:3)

在控制器中,您将使用needs,然后获取控制器并将其调用

App.FooController = Ember.ObjectController.extend({
  needs:['bar'],
  blah: function(){
    var barController = this.get('controllers.bar');
    barController.toggleProperty('visible');
  }
});

http://emberjs.jsbin.com/dofedehi/2/edit