1

从 Trello API 的 Trello.Net 包装器返回时,我在处理 JSON 数据的 Handlebars 语法。我正在对一些返回卡片的字符串进行卡片搜索。这部分效果很好。但是,使用 {{#each}} 包装我的 Handlebars HTML 会在车把核心文件中引发“n is undefined”错误。

这是我的 JSON:

"[ 
    { "Id": "519a423c4bedcac656000a84", 
      "Name": "sdvsdv", 
      "Desc": "**Submitted by me**\r\n\r\nsdvsdvsdvsdv", 
      "Other keys": "Other values",
 }, 
    { "Id": "519a423c4bedcac656000a84", 
      "Name": "sdvsdv", 
      "Desc": "**Submitted by me**\r\n\r\nsdvsdvsdvsdv", 
      "Other keys": "Other values",
 }.. and so on 
]"

这是我的(精简的)车把模板:

 <script id="resultsTemplate" type="text/x-handlebars-template">
    {{#each}}
    <div class="result {{Id}}">
        <h3>{{Name}}</h3>
    </div>
    {{/each}}
</script>

和我的 Ajax 调用:

 $(".search-btn").click(function () {
         var data = 'David Orriell';
         $.ajax({
             type: "POST",
             url: "SearchYourCards.aspx/GetCards",
             data: "{'data': '" + data + "'}",
             contentType: "application/json; charset=utf-8",
             dataType: "json",
             success: function (msg) {
                 var res = $.parseJSON(msg.d);
                 var source = $('#resultsTemplate').html();
                 var template = Handlebars.compile(source);
                 var context = res;
                 $('#results').html(template(context));
                 //$('#results').accordion({ header: ".result h3" });
             }
         });
     });

我的 HTML 模板总是空的。有任何想法吗?

谢谢,布雷特

4

1 回答 1

2

你应该检查你的错误控制台。然后你应该告诉{{#each}}你想要迭代的内容:

{{#each this}}
    <!-- ... -->
{{/each}}

演示:http: //jsfiddle.net/ambiguous/vcQdf/

于 2013-05-20T16:46:34.123 回答