在emberjs pre2 中,我们可以从另一个控制器访问控制器或控制器中的任何方法 以下方式:
App.get( '路由器')得到( 'navController')方法1();
有人可以建议什么是类似的emberjs rc1 代码?
由于
答案 0 :(得分:17)
由于controllerFor
已被弃用,我认为需要更正确的方式:
this.get('controllers.nav').method1()
需要在控制器中声明需求:
App.YourController = Ember.ObjectController.extend({
needs: ['nav'],
....
答案 1 :(得分:3)
在Controller
或Route
内,您可以尝试
this.controllerFor("nav").method1()
当问到这个问题时这是正确的答案,但由于controllerFor
已被弃用,请通过joscas检查答案
答案 2 :(得分: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()