如何在Ember.js中获取控制器的实例?

Den*_*nzo 5 ember.js ember-old-router

我正在尝试访问使用App.initialize()自动连接的控制器实例;

我已经尝试过以下但它返回的是Class而不是实例.

Ember.get('App.router.invitesController')

小智 19

我在我的博客上有关于这个确切主题的快速帖子.这是一个不同的方法,但似乎适用于Ember.js RC1.

请查看:http://emersonlackey.com/article/emberjs-instance-of-controller-and-views

基本的想法是做类似的事情:

var myController = window.App.__container__.lookup('controller:Posts');
Run Code Online (Sandbox Code Playgroud)


Kev*_*hey 9

这个答案适用于RC1/RC2.

现在,您可以使用needs声明来使所需的控制器可访问.这是一个例子:

假设我想从我的东西SettingsController从我内ApplicationController.我可以做以下事情:

App.SettingsController = Ember.Controller.extend({
  isPublic: true
});

App.ApplicationController = Ember.Controller.extend({
  needs: 'settings',
  isPublicBinding: 'controllers.settings.isPublic'
});
Run Code Online (Sandbox Code Playgroud)

现在在我的背景下ApplicationController,我可以做到this.get('isPublic')