【问题标题】: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}}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 2021-05-06
      • 1970-01-01
      • 2014-12-04
      相关资源
      最近更新 更多