当使用带有AMD / Require.js的Ember.js时,我注意到我无法从模板访问我的Ember.Application
实例,除非我把它放在全局范围内(这应该是你避免的事情)使用AMD)。
是否可以定义Ember.Application
而不将其设为全局?
我的模块:
define(['Ember'], function (Ember) {
window.App = Ember.Application.create();
App.MyView = Ember.View.extend({});
});
我的模板:
{{#view App.MyView }}{{/view}}
答案 0 :(得分:2)
这里有一个回购:https://bitbucket.org/cprecourt/ember-requirejs-example/src。这是一个广泛的应用程序,可让您了解如何处理分离代码。除非你决定将它嵌套在Ember对象中(你可以自由地做,并且示例repo确实允许模板访问应用程序),所以Em.Application总是全局的。
在您的应用加载之前,Ember已经将大量对象转储到全局,因此我不明白为什么更多全局的单个对象会产生影响(与污染Em / Ember全局相反)。