content-for 'head' Ember-cli
Posted
技术标签:
【中文标题】content-for \'head\' Ember-cli【英文标题】:content-for 'head' Ember-clicontent-for 'head' Ember-cli 【发布时间】:2014-11-30 08:48:00 【问题描述】:过去 1 个月我一直在使用 Yeoman ember generator,现在,我想试试 ember-cli。
我运行生成器并启动应用程序,一切正常。
ember new my-new-app
ember server
但我想知道如何
content-for 'head'
在 app/index.html 中有效吗?
当查看来自http://www.ember-cli.com/#tutorials 的其他示例时,他们都没有使用这个特殊的助手?是因为他们使用的是旧版本的 ember-cli 吗?他们为什么不使用这个 content-for 助手?
我很确定 ember.js 默认没有这个 content-for 助手,所以我猜 ember-cli 是在某个地方写的?它在哪里,有什么用?
另外,当我检查 my-new-app 页面的元素时,'Welcome to Ember.js' 的 div 标签出现在 body 标签而不是 head 标签?这怎么可能? 心碎
(在 app/index.html 中,content-for 'head' 放在 head 标签内)
【问题讨论】:
【参考方案1】:最近基于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');
;
【讨论】:
更多上下文见npmjs.org/package/ember-cli-inline-content【参考方案2】:来自Ember CLI guide:
app/index.html
app/index.html
文件为您的应用程序奠定了基础。 这是基本 DOM 结构布局的地方,title 属性 已设置并且样式表/javascript 包含已完成。此外 这,app/index.html
包括多个钩子 -content-for 'head'
和content-for 'body'
- 可以被插件使用 将内容注入应用程序的head
或body
。这些钩子 需要保留以使您的应用程序正常运行, 但除非您直接使用 特定的插件。
我实际上是在寻找 Welcome to Ember.js
的来源(显然在 app\templates\application.hbs
中),但首先偶然发现了 content-for
助手。
【讨论】:
以上是关于content-for 'head' Ember-cli的主要内容,如果未能解决你的问题,请参考以下文章
Ember 2,使用诸如 ember-truth-helpers 之类的插件进行表演,而不仅仅是 Ember 默认方式
模拟使用 ember-cli-storybook 中的 ember-ajax 发布和获取数据的 ember 服务的最佳方法是啥?
为啥 ember 计算属性只在 ember 检查器中执行一次?