Ember.js 从其他控制器获取属性

Ember.js 从其他控制器获取属性,ember.js,Ember.js,在我的Ember应用程序的AuthController中,我设置了一个currentUser,可以使用它从AuthController中获取 this.get('currentUser'); 从AuthController内部。在另一个控制器中,我使用needs:['auth'],这样我就可以从auth控制器获取currentUser变量,但它不起作用。我该怎么做 App.BlobController = Ember.ObjectController.extend({ needs:

在我的Ember应用程序的AuthController中,我设置了一个currentUser,可以使用它从AuthController中获取

this.get('currentUser');
从AuthController内部。在另一个控制器中,我使用
needs:['auth']
,这样我就可以从auth控制器获取currentUser变量,但它不起作用。我该怎么做

App.BlobController = Ember.ObjectController.extend({
     needs: ['auth'],

    actions: {

    doSomething: function() {
       var user;
       user = this.get('currentUser'); /// not working
       $.post(".....
更新

按照Ember文档中关于管理控制器之间依赖关系的说明,我还尝试执行
controllers.auth.get('currentUser')但它不起作用

doSomething: function() {
           var user;
           user = controllers.auth.get('currentUser'); /// not working
           $.post(".....

其工作方式如下所示:

App.BlobController = Ember.ObjectController.extend({
  needs: ['auth'],
  actions: {
    doSomething: function() {
      var user;
      user = this.get('controllers.auth.currentUser');
      $.post("...
在引用
AuthController
currentUser
属性的
BlobController
上声明一个计算别名,或更干净:

App.BlobController = Ember.ObjectController.extend({
  needs: ['auth'],
  currentUser: Ember.computed.alias('controllers.auth.currentUser'),
  actions: {
    doSomething: function() {
      var user;
      user = this.get('currentUser');
      $.post("...

希望能有所帮助。

它的工作方式是按照以下方式进行:

App.BlobController = Ember.ObjectController.extend({
  needs: ['auth'],
  actions: {
    doSomething: function() {
      var user;
      user = this.get('controllers.auth.currentUser');
      $.post("...
在引用
AuthController
currentUser
属性的
BlobController
上声明一个计算别名,或更干净:

App.BlobController = Ember.ObjectController.extend({
  needs: ['auth'],
  currentUser: Ember.computed.alias('controllers.auth.currentUser'),
  actions: {
    doSomething: function() {
      var user;
      user = this.get('currentUser');
      $.post("...
希望能有帮助