Ember.js 在Ember App Kit文件结构中,您将一个简单变量放置在何处,以便模板文件可以访问它?

Ember.js 在Ember App Kit文件结构中,您将一个简单变量放置在何处,以便模板文件可以访问它?,ember.js,Ember.js,使用此示例: 我将把这行代码放在哪里: App.name = 'White' 在EAK文件结构中,使其在索引页上呈现,如示例所示 我不确定这是不是正确的方法。但一般来说,EAK试图避免污染全局名称空间。因此,让globals在任何地方都可访问的方法是使用初始值设定项注册globals依赖项并将其注入所有控制器。这与余烬数据将存储注入控制器的方式相同 内部app/initializerscreateglobal.js文件 var globals = Ember.Object.extend({

使用此示例:

我将把这行代码放在哪里:

App.name = 'White'

在EAK文件结构中,使其在索引页上呈现,如示例所示

我不确定这是不是正确的方法。但一般来说,EAK试图避免污染全局名称空间。因此,让globals在任何地方都可访问的方法是使用初始值设定项注册globals依赖项并将其注入所有控制器。这与余烬数据将存储注入控制器的方式相同

内部
app/initializers
create
global.js
文件

var globals = Ember.Object.extend({
  name: 'Edgar Allen Poe'
});

export default {
  name: "Globals",

  initialize: function(container, application) {
    container.typeInjection('component', 'store', 'store:main');
    application.register('global:variables', globals, {singleton: true});
    application.inject('controller', 'globals', 'global:variables');
  }
};
这将向所有控制器注入全局变量。 您可以在模板中引用它,如

{{globals.name}}

将其放入初始值设定项非常好,但如果您的应用程序没有使用太多全局数据或只需要一个标志,则可以直接使用它:

window.App = Ember.Application.create(
  ready: ->
    this.register('current:view', window.current_view, {instantiate: false});
    this.inject('controller', 'isCurrentView', 'current:view');
  rootElement: '#ember-app'
)

现在您可以在所有模板中访问{isCurrentView}}

这太棒了,不过我觉得这很疯狂!你从哪里开始弄明白这类事情??除了源代码本身之外,还有一些关于ember的低级文档吗?@user391986检查一下这个啊谢谢你的帮助那么你如何访问路由或控制器中的全局变量?@david douglas你可以这样访问。get('globals');