我正在使用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之类的方法?

最佳答案

在控制器中,您将使用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

09-19 09:39