如何指定用于把手模板的自定义配置变量?
例如:
// config/settings.json
{
"title": "Hello World"
}
// config/foo.json
{
"bar": "baz"
}
// Template
{{ settings.title }}
{{ foo.bar }}
答案 0 :(得分:4)
您需要使用依赖注入将全局变量注入控制器。来自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');
这里是初始化程序中上述2个步骤的完整代码
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}}