为什么handlebars.js返回空括号?

时间:2016-12-20 11:33:36

标签: javascript handlebars.js

我想从本地api填充json数据。我按照文档但它不起作用,我得到空括号而不是数据。

html片段:

<div class="form-group">
    <select name="form1" id="form1" class="ins-form-basic" >
    </select>
</div>
<script id="sourceTemplate" type="x-handlebars-template">
    {{#each items}}
    <option value="{{id}}">{{name}}</option>
    {{/each}}
</script>

<script>
$.get("/localApi", function(json) {
    var source = $("#sourceTemplate").html(),
        tmplt = Handlebars.compile(source),
        data = { items: json.item },
        output = tmplt(data);
    $("#form1").append(output);
});
</script>

我希望得到身份证和姓名,这就是我得到的。

<option value="{}">{}</option>
<option value="{}">{}</option>
<option value="{}">{}</option>
<option value="{}">{}</option>

来自api的json没问题。这是它的结构。

{
    item: [
        {id:"1", name:"test1"},
        {id:"2", name:"test2"},
        {id:"3", name:"test3"},
        {id:"4", name:"test4"},
        ...
        ]
}

2 个答案:

答案 0 :(得分:2)

<option value="{{id}}">{{name}}</option>

这应该是

<option value="{{this.id}}">{{this.name}}</option>

答案 1 :(得分:-1)

我承认发生了什么事。服务器端模板(template_)库共享相同的符号(括号)

我试图找到另一种方式。