2016-12-20 82 views
1

我想从本地api填充json数据。我遵循文档,但它不工作,我得到空的括号,而不是数据。为什么handlebars.js返回空括号?

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"}, 
     ... 
     ] 
} 

回答

-1

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

我试图找到另一种方式。

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

这应该是

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