4

在 emberjs pre2 中我们可以通过以下方式从另一个控制器访问控制器或控制器中的任何方法:

App.get('router').get('navController').method1();

谁能建议 emberjs rc1的类似代码是什么?

谢谢

4

3 回答 3

17

由于controllerFor已弃用,我认为更正确的方法是需要

this.get('controllers.nav').method1()

它需要在控制器中声明您的需求:

App.YourController = Ember.ObjectController.extend({
  needs: ['nav'],
  ....
于 2013-03-26T17:53:34.703 回答
3

在 aController或 a里面Route你可以试试

this.controllerFor("nav").method1()

注意力

这是问问题时的正确答案,但由于controllerFor已弃用,请检查joscas的答案

于 2013-03-07T06:55:25.540 回答
2

在 Ember 2 中,这通过注入您想要访问的控制器来工作:

export default Ember.Controller.extend({
  nav: Ember.inject.controller(),
});

或者,如果要指定与控制器名称不同的名称:

export default Ember.Controller.extend({
  navController: Ember.inject.controller('nav'),
});

然后,您可以访问注入控制器的方法,如下所示:

this.get('navController').method1()
于 2016-03-21T04:03:46.493 回答