你如何将AMD与Ember.js一起使用?

时间:2013-02-01 22:47:32

标签: ember.js amd

当使用带有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}}

1 个答案:

答案 0 :(得分:2)

这里有一个回购:https://bitbucket.org/cprecourt/ember-requirejs-example/src。这是一个广泛的应用程序,可让您了解如何处理分离代码。除非你决定将它嵌套在Ember对象中(你可以自由地做,并且示例repo确实允许模板访问应用程序),所以Em.Application总是全局的。

在您的应用加载之前,Ember已经将大量对象转储到全局,因此我不明白为什么更多全局的单个对象会产生影响(与污染Em / Ember全局相反)。