如何让Smart Time Ago与Handlebars.js一起使用

时间:2012-10-17 14:34:32

标签: handlebars.js

我正在使用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>

......它不起作用。

我缺少什么或者是否有一篇文章可以让我得到答案?我在谷歌的各个地方搜索,但一定没有正确的搜索条件。

谢谢!

1 个答案:

答案 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/