【问题标题】:Ember Handlebars Templates in <head> tag<head> 标签中的 Ember 车把模板
【发布时间】:2013-08-26 13:15:11
【问题描述】:

ember(特别是应用程序模板)是否可以在 head 标签内进行操作,以便动态更改标题标签、元标签、外部 css 样式表和 favicon 等内容?

如果是这样,这样做的干净方法是什么?

【问题讨论】:

  • 对此也很好奇。在 angular.js 中,它大致和 &lt;html ng-app&gt; 一样简单
  • 使用它很简单,document.getElementsByTag("head").innerHTML += "&lt;meta content = ''/&gt;"; 这可以通过原始 JavaScript 实现,所以为什么要依赖任何库:)
  • @MarmiK 他要求一种“干净”的方式:P
  • @MarmiK 加载 dom 时,大多数元标记都已加载,即使您在 javascript 中更改它们也无效。所以我猜他在加载整个页面之前问过。由于 ember 创建了它的 index.html 页面,然后一切都在正文中完成,如何增加您的 seo 等,因为它们不会执行 javascript

标签: javascript ember.js handlebars.js


【解决方案1】:

为了完成这项工作,我创建了车把助手。例如,如果要更改视图的标题,这是很常见的,这里是帮助器。

Ember.Handlebars.helper('headTitle', function(title) {
  Ember.$('head').find('title').text(title);
}, 'title');

现在在任何视图模板中您都可以添加助手

{{headTitle 'View Header'}}

这里是JSbin 检查它是否工作

【讨论】:

  • 你应该使用Ember.$。但除此之外还不错。
  • 它会更新 fb、twitter 和 google 等社交网站引擎的元标记吗?
  • $('head').find('title') 似乎效率很低,为什么不直接$('head title')
猜你喜欢
  • 2014-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多