handlebars.js刚停止工作?

时间:2011-10-05 19:13:28

标签: javascript jquery-templates handlebars.js

我有一个有趣的问题。我有一个handlebars.js模板已经工作了一个星期,刚刚停止。我希望有人可能知道为什么。

继承模板

    <script id="banners-template" type="text/x-handlebars-template">
   <div class="banner-container" >
   {{#banners}}
   <ul class="banner" >
   <li><div class="checkbox"></div></li>
   <li>{{publisher_status}}</li>
   <li><a href="{{url}}">Test Link</a></li>
   <li><img class="banner" src="{{imageurl}}"/></li>
   <li>{{description}}</li>
   <li>{{width}}x{{height}}</li>
   </ul>
   {{/banners}}
   </div>
   </script>

以下是适用于此的代码。

    var bannersRawTemplate   = $("#banners-template").html();
    var bannersTemplate = Handlebars.compile(bannersRawTemplate);
    data = '{"banners":[{"type":"banner","width":125}]}';
    alert(bannersTemplate(data));

我意识到上面的模板中没有访问该类型,但它并不重要。我仍然应该在“横幅”数组循环中显示一次代码。不是这种情况。显示的模板的唯一部分是。它就像没有在JSON中看到横幅数组。

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

有没有特殊原因你没有传入实际的JSON,而是传递一个字符串?根据我对Mustache的经验,以及对Handlebars.js文档的粗略回顾,您应该通过:

JSON.parse('{"banners":[{"type":"banner","width":125}]}');

并且,假设您显示的代码“非常真实”,为什么不呢:

{"banners":[{"type":"banner","width":125}]}

当然,这是假设问题确实不是你只有一个元素的列表。