{{content-for' head'}} Ember-cli

时间:2014-10-06 05:18:31

标签: ember.js ember-cli

过去1个月我一直在使用Yeoman余烬生成器,现在,我想尝试一下ember-cli。

我运行生成器并启动应用程序,一切正常。

ember new my-new-app
ember server

但我想知道怎么做

{{content-for 'head'}}
app / index.html中的

有效吗?

在查看http://www.ember-cli.com/#tutorials中的其他示例时,他们都没有使用此特定帮助程序?是因为他们使用旧版本的ember-cli?他们为什么不使用这个内容来帮忙?

我很确定ember.js默认没有这个内容 - 帮忙,所以我猜猜ember-cli在某处写了吗?它在哪里以及它的用途是什么?

此外,当我检查my-new-app页面的元素时,“欢迎使用Ember.js”的div标签为'出现在身体标签而不是头部标签?怎么可能? {{心吹}}

(在app / index.html中,{{content-for' head'}}放在head标签内)

2 个答案:

答案 0 :(得分:25)

最近基于this discussion将其添加到ember-cli。

以下是commit的相关代码:

EmberApp.prototype.contentFor = function(config, match, type) {
  var content = [];

  if (type === 'head') {
    content.push(calculateBaseTag(config));

    content.push('<meta name="' + config.modulePrefix + '/config/environment" ' +
                 'content="' + escape(JSON.stringify(config)) + '">');
  }

  content = this.project.addons.reduce(function(content, addon) {
    if (addon.contentFor) {
      return content.concat(addon.contentFor(type, config));
    }

    return content;
  }, content);

  return content.join('\n');
};

答案 1 :(得分:21)

来自Ember CLI guide

  

应用程序/ index.html的

     

app/index.html文件为您的应用奠定了基础。   这是布局基本DOM结构的地方,title属性   已设置并且样式表/ javascript包含已完成。此外   这个,app/index.html包含多个钩子 - {{content-for 'head'}}{{content-for 'body'}} - 可以由Addons使用   将内容注入您的应用程序的headbody。这些钩子   需要留在原地,以使您的应用程序正常运行,   但除非你直接使用,否则可以安全地忽略它们   特别是插件。

我实际上是在寻找Welcome to Ember.js来自哪里(显然位于app\templates\application.hbs),但首先偶然发现了content-for个助手。