Ember访问IndexController内的另一个控制器?

时间:2013-04-21 13:38:37

标签: ember.js

如何在Ember中访问索引控制器内的另一个控制器?

App.IndexController = Ember.ArrayController.extend({
    doSomethingToAnotherController: function(params) { 
            // how do I access another controller other than the index controller here?
        }
});

1 个答案:

答案 0 :(得分:1)

您可以使用needs将一个控制器连接到另一个控制器:

App.OtherController = Ember.ObjectController.extend({
    //... code here
});

App.IndexController = Ember.ArrayController.extend({
    needs: ['other'],
    doSomethingToAnotherController: function() {
      //you can access the 'other' controller via get for example:
      this.get('controllers.other').doSomething();
    }
});

这是一个工作小提琴:http://jsfiddle.net/e2fXn/

但是,在{{#each}}循环中使用时,似乎有an open issue这会破坏(这可能与您的IndexController扩展ArrayController后相关)。

希望这有帮助!