2013-05-20 15 views
0

從Trello API的Trello.Net封裝器返回的JSON數據的Handlebars語法中掙扎。我正在做卡片搜索返回卡片的一些字符串。這部分運作良好。但是,使用{{#each}}封裝我的Handlebars HTML會在handlebars核心文件中引發'n is undefined'錯誤。Trello API的JSON格式的Handlebars語法問題

這裏是我的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模板總是空的。有任何想法嗎?

感謝, 佈雷特

回答

2

您應該檢查你的錯誤控制檯。然後,你應該告訴{{#each}}要遍歷什麼:

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

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

+1

在控制檯中的唯一錯誤是「類型錯誤:n爲未定義」在handlebars.js。 但是,使用{{#each this}}解決了我的問題。 謝謝, – Brett