2010-09-09 6 views
0

J'utilise jtemplates avec jquery et j'obtiens une erreur lorsque j'essaie d'utiliser des tables dans le template.Erreur avec jtemplates avec les tables

Après travaille

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

mais ce qui suit ne fonctionne pas et donne erreur $ T.record est non définie dans Firebug

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

Après comment je fais appel modèle avec des données

$(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); 
}); 

Toute aide à résoudre ceci est grandement apprécié.

Répondre

0

Je vais prendre un coup de poignard à elle, pour cette solution:

{#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} 

Si vous rencontrez toujours des problèmes, je vous recommande de mettre le modèle dans un fichier html externe et l'utiliser comme ceci:

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

Merci Randall. Je vois les résultats correctement dans IE 8 mais pas dans Firefox et chrome. Toutes les idées pourquoi cela pourrait moi. – user198552

+0

Vérifiez ma réponse mise à jour. Y a-t-il aussi des erreurs dans Firefox et Chrome? –

0

L'erreur venait à cause de mon emplacement du modèle lui-même. Lorsque j'ai placé le modèle dans un bloc comme ceci

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

les modèles sont correctement rendus.