Emberjs自定义配置变量

时间:2014-05-22 09:19:56

标签: javascript json ember.js configuration

如何指定用于把手模板的自定义配置变量?

例如:

// config/settings.json

{
  "title": "Hello World"
}

// config/foo.json
{
  "bar": "baz"
}

// Template

{{ settings.title }}
{{ foo.bar }}

1 个答案:

答案 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}}