不要用那个。一位核心开发人员表示,每当有人尝试使用 时App.__container__
,他都会添加另一个下划线。
如果您真的想访问 Ember.View 实例,请使用Ember.View.views['foo']
. foo
视图实例在哪里elementId
。
因此,例如,如果您想要App.ApplicationView
实例:
App.ApplicationView = Ember.View.extend({
elementId: 'application'
});
// somewhere else in your code
var applicationViewInstance = Ember.View.views['application'];
话虽如此,我从来没有遇到过需要访问这样的视图实例的情况。如果您可以发布您的用例,我可能会建议其他方法。
更新:您想从其他视图实例(视图高度和宽度)访问视图实例的某些属性。您可以将这些属性传递给控制器并让其他控制器访问它们以在其他视图中使用它们(源视图 -> 源控制器 -> 其他一些控制器 -> 其他一些视图):
App.ApplicationView = Ember.View.extend({
didInsertElement: function() {
var controller = this.get('controller'),
height = this.$().height(),
width = this.$().width();
controller.setProperties({
height: height,
width: width
});
}
});
App.SomeotherController = Ember.Controller.extend({
needs: ['application'],
applicationViewWidthBinding: 'controllers.application.width',
applicationViewHeightBinding: 'controllers.application.height'
});
App.SomeOtherView = Ember.View.extend({
// assuming its controller is an instance of App.SomeotherController
applicationViewWidthBinding: 'controller.applicationViewWidth',
applicationViewHeightBinding: 'controller.applicationViewHeight'
});