【问题标题】:Emberjs custom config variablesEmberjs 自定义配置变量
【发布时间】:2014-07-11 05:50:16
【问题描述】:
如何指定一个自定义配置变量以在车把模板中使用?
例如:
// config/settings.json
{
"title": "Hello World"
}
// config/foo.json
{
"bar": "baz"
}
// Template
{{ settings.title }}
{{ foo.bar }}
【问题讨论】:
标签:
javascript
json
ember.js
configuration
【解决方案1】:
您需要使用依赖注入将全局变量注入控制器。 Balint Erdi 的This blog post 解释得很好。
Here is a working demo.
这基本上就是你所做的
-
创建 2 个对象 - 设置和 foo。
var settings = Ember.Object.extend({
title: 'Hello World'
});
var foo = Ember.Object.extend({
bar: 'baz'
});
-
使用应用初始化器在容器中注册这两个对象。
container.register('globals:settings', settings, { singleton: true });
container.register('globals:foo', foo, { singleton: true });
-
将注册的2个对象注入到所有控制器中。
application.inject('controller', 'settings', 'globals:settings');
application.inject('controller', 'foo', 'globals:foo');
这是初始化器中上述两个步骤的完整代码
Ember.Application.initializer({
name: "globals",
initialize: function(container, application) {
container.register('globals:settings', settings, { singleton: true });
container.register('globals:foo', foo, { singleton: true });
application.inject('controller', 'settings', 'globals:settings');
application.inject('controller', 'foo', 'globals:foo');
}
});
然后您可以将模板中的值引用为
{{settings.title}}