javascript - Handlebars 入门

标签 javascript handlebars.js

我第一次尝试 Handlebars;我的目标是在 html 中显示项目列表。

这是html里面的脚本:

<div>
  <script id="list-items" type="text/x-handlebars-template">​
    {{#each list}} {{ price }} {{/each}}
  </script>
</div>

这是js文件:

var list = [
          {
            name: 'Almond Toe Court Shoes, PatentBlack',
            category: 'Women\'s footwear',
            price: 42,
            quantity: 5
          },
          {
            name: 'Bla bla bla',
            category: 'Women\'s footwear',
            price: 66,
            quantity: 5
          }
        ];


    var theTemplateScript = $("#list-items").html();
    
    


    var theTemplate = Handlebars.compile (theTemplateScript);

    
    

    $(document.body).append (theTemplate (list));

我的代码不起作用,我在控制台中没有看到任何错误。 我做错了什么?

最佳答案

您的模板遍历 list 属性,但您传递的是原始数组。

要协调您的模板和您传递的数据,要么传递一个具有 list 属性的对象:

$(document.body).append (theTemplate ({
    list: list
}));

http://jsfiddle.net/nikoshr/hm6psg9w/1/

或修改您的模板以遍历数组:

<script id="list-items" type="text/x-handlebars-template">​
    {{#each .}} {{ price }} {{/each}}
</script>

http://jsfiddle.net/nikoshr/hm6psg9w/

关于javascript - Handlebars 入门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32590088/

相关文章:

javascript - 在 Javascript 字符串中的 url 开头和结尾插入字符

javascript - 使用 Node.js 和 Handlebars 显示数据库查询的内容

javascript - 如何添加 key :value pair in an order in javascript

javascript - 在服务器上将 sqlite 与 HTML5 连接起来

javascript - 使用 jQuery 函数将格式为 "YYYY-MM-DDT12:00:00.000Z"的 ISO 8601 日期转换为 "DD.MM.YYYY"?

javascript - 第一列固定的 SlickGrid

javascript - 无法使用 Electron 输入文本/输入字段

jquery - 在 Handlebars 模板中使用 Canvas ?

javascript - 期待 'ID' ,得到 'NUMBER'

javascript - "TypeError: chains is undefined "添加 Handlebars (如果是助手)并导航到应用程序主页时