Ember.js 从一个控制器获取另一个控制器的实例变量值的新的官方方法是什么

Ember.js 从一个控制器获取另一个控制器的实例变量值的新的官方方法是什么,ember.js,Ember.js,从一个控制器获取另一个控制器的实例变量值的新方法是什么 比如说,我以前用过 App.router.get(“applicationController.isLoopingEnabled”)访问该值,而App.router.set(“applicationController.isLoopingEnabled”)从我的PlaybarController实例设置isLoopingEnabled变量的值 我只是想知道目前在Ember RC3上的最佳实践是什么。从以前的版本升级时,我遇到了很多问题。再也

从一个控制器获取另一个控制器的实例变量值的新方法是什么

比如说,我以前用过
App.router.get(“applicationController.isLoopingEnabled”)
访问该值,而
App.router.set(“applicationController.isLoopingEnabled”)
从我的
PlaybarController
实例设置
isLoopingEnabled
变量的值

我只是想知道目前在Ember RC3上的最佳实践是什么。从以前的版本升级时,我遇到了很多问题。

再也没有“一种方法”访问不同控制器的属性了。这取决于您要从何处访问它

从另一个控制器访问控制器:

App.PostsController = Em.ArrayController.extend({
  someValue: 1
});

App.CommentsRoute = Em.Route.extend({
  renderTemplate: function() {
    var someValue = this.controllerFor('posts').get('someValue');
  }
});
App.PostsController = Em.ArrayController.extend({
  someValue: 1
});

App.PostsView = Em.View.extend({
  someValueBinding: 'controller.someValue'
});
使用

例如:

App.PostsController = Em.ArrayController.extend({
  someValue: 1
});

App.CommentsController = Em.ArrayController.extend({
  needs: ['posts'],
  postsValuePlusOne: function() {
    return this.get('controllers.posts.someValue') + 1;
  }).property('controllers.posts.someValue')
});
从路由访问控制器:

App.PostsController = Em.ArrayController.extend({
  someValue: 1
});

App.CommentsRoute = Em.Route.extend({
  renderTemplate: function() {
    var someValue = this.controllerFor('posts').get('someValue');
  }
});
App.PostsController = Em.ArrayController.extend({
  someValue: 1
});

App.PostsView = Em.View.extend({
  someValueBinding: 'controller.someValue'
});
从视图访问控制器:

App.PostsController = Em.ArrayController.extend({
  someValue: 1
});

App.CommentsRoute = Em.Route.extend({
  renderTemplate: function() {
    var someValue = this.controllerFor('posts').get('someValue');
  }
});
App.PostsController = Em.ArrayController.extend({
  someValue: 1
});

App.PostsView = Em.View.extend({
  someValueBinding: 'controller.someValue'
});
如果要访问视图控制器以外的控制器的值(例如CommentsController,请使用控制器的需要:
controller.controllers.comments.someValue

最后,

有一种全局方法可以访问任何控制器,但仅用于调试和测试,而不用于生产中:

var postsController = App.__container__.lookup('controller:posts')

这对我帮助很大,谢谢:)