在Ember.js中,获取当前控制器的正确方法是什么?

时间:2015-05-28 16:45:11

标签: javascript ember.js

目前,我有一个mixin添加currentController属性,您可以使用它来获取当前路径的控制器。我需要它可绑定,所以这是我的代码:

// client controller should be adding 'application' to its needs array
export default Ember.Mixin.create({

  _appController: Ember.computed.alias('controllers.application'),

  currentController: function () {
    var currentRouteName = this.get('_appController').get('currentRouteName');
    return this.controllerFor(currentRouteName);
  }.property('_appController.currentRouteName')

});

但不推荐使用controllerFor以支持需求。那么,我该怎么办?谢谢。

1 个答案:

答案 0 :(得分:0)

由于您在代码中使用this.controllerFor(),我假设您处于路由上下文中。 Route有一个controller属性,你不需要mixin。例如:

// Use this.controller in your route to get the current controller
var currentController = this.controller;