2010-09-09 56 views
0

我在jQuery中使用jtemplates,當我嘗試使用模板中的表時出現錯誤。jtemplates與表錯誤

以下是工作

<ul> 
{#foreach $T as record} 
<li>{$T.record.FirstName}</li> 
{#/for} 
</ul> 

但下面不工作,並給出錯誤$ T.record未定義的螢火

<table border="1"> 
{#foreach $T as record} 
<tr> 
<td>{$T.record.FirstName}</td> 
</tr> 
{#/for} 
</table> 

以下是如何我打電話模板一些數據

$(document).ready(function() { 
    var data = [ 
        { ID: 1, FirstName: 'Anne', Email: '[email protected]' }, 
        { ID: 2, FirstName: 'Amelie', Email: '[email protected]' }, 
        { ID: 3, FirstName: 'Polly', Email: '[email protected]' }, 
        { ID: 4, FirstName: 'Alice', Email: '[email protected]' }, 
        { ID: 5, FirstName: 'Martha', Email: '[email protected]' } 
       ]; 

    $("#jTemplateDemo").setTemplate($("#templateHolder").html()); 
    $("#jTemplateDemo").processTemplate(data); 
}); 

在任何幫助解決這個不勝感激。

回答

0

我將它取刺,試試這個:

{#template MAIN} 
<table border="1"> 
    <tr> 
     <th>First Name</th> 
     <th>Email</th> 
    </tr> 
    {#foreach $T as record} 
     {#include ROW root=$T.record} 
    {#/for} 
</table> 
{#/template MAIN} 

{#template ROW} 
    <tr> 
     <td>{$T.FirstName}</td> 
     <td>{$T.Email}</td> 
    </tr> 
{#/template ROW} 

如果您仍然有問題,我會建議你把模板在外部HTML文件並使用它是這樣的:

$("#jTemplateDemo").setTemplateURL('JTemplates/yourTemplateHere.html'); 
$("#jTemplateDemo").processTemplate(data); 
+0

感謝蘭德爾。我在IE 8中看到了正確的結果,但在Firefox和chrome中看不到。任何想法,爲什麼這可能是我。 – user198552 2010-09-09 04:25:29

+0

檢查我的更新答案。 Firefox和Chrome中是否還有錯誤? – 2010-09-09 11:27:56

0

錯誤是由於我的模板本身的位置。當我放置在模板中像塊正確地呈現這個

<script id="templateHolder" type="text/html"> 
    <!-- Template itself --> 
</script> 

模板。