我正在使用Handlebars.js和http://pragmaticly.github.com/smart-time-ago/
我有这个工作:
<time class="timeago" datetime="2012-07-18T07:51:50Z"></time>
在此演示:Demo
但是当我在Handlebars的逻辑中添加时间时,如此处所见......
<div id="handlebarsPlaceholder">This will get replaced by handlebars.js</div>
<script id="aaronsTemplate" type="text/x-handlebars-template">
{{#messages}}
<li>
<a href="#messageID{{messageID}}">
<time class="timeago" datetime="2012-07-18T07:51:50Z"></time>
<strong>{{from}}</strong><br/>
{{subject}}
</a>
</li>
{{/messages}}
</script>
</ul>
</div>
......它不起作用。
我缺少什么或者是否有一篇文章可以让我得到答案?我在谷歌的各个地方搜索,但一定没有正确的搜索条件。
谢谢!
答案 0 :(得分:2)
$('.timeago').timeago()
来电<script type="text/x-handlebars-template">
内的<script>
调用将无法找到type="text/html"
内的内容,因为.timeago()
不包含HTML(这就是为什么我们特别不使用var t = Handlebars.compile($('#aaronsTemplate').html());
$('#handlebarsPlaceholder').html(t({ ... });
$('#handlebarsPlaceholder .timeago').timeago();
我们的模板容器)。
您需要做的只是在填写模板的HTML上调用</div>
;像这样的东西:
<ul>
最后一行是你缺少的。
此外,您的HTML有点偏离,您有一个迷路<div id="handlebarsPlaceholder">This will get replaced by handlebars.js</div>
<script id="aaronsTemplate" type="text/x-handlebars-template">
<ul>
{{#messages}}
<li>
<!--... -->
</li>
{{/messages}}
</ul>
</script>
而且您错过了模板中的空缺{{1}};你应该有更多这样的东西:
{{1}}
演示(使用精简模板):http://jsfiddle.net/ambiguous/89Bwx/1/