2013-03-23 4 views
8

Почему такой же объектный код JSON генерирует выходные данные с элементами ul, но не с тегом table.Шаблон Mustache не отображает внутри таблицы tbody

У меня есть шаблон Усы, как:

<div id="template-ul"> 
    <h3>{{name}}</h3> 
    <ul> 
     {{#students}} 
     <li>{{name}} - {{age}}</li> 
     {{/students}} 
    </ul> 
</div> 

<div id="template-table"> 
    <table> 
     <thead> 
      <th>Name</th> 
      <th>Age</th> 
     </thead> 
     <tbody> 
     {{#students}} 
      <tr> 
       <td>{{name}}</td> 
       <td>{{age}}</td> 
      </tr> 
     {{/students}} 
     </tbody> 
    </table> 
</div> 

Вот Javascript код:

var testing = { 
    "name" : "student-collection", 
    "students" : [ 
     { 
      "name" : "John", 
      "age" : 23 
     }, 
     { 
      "name" : "Mary", 
      "age" : 21 
     } 
    ] 
}; 

var divUl = document.getElementById("template-ul"); 
var divTable = document.getElementById("template-table"); 

divUl.innerHTML = Mustache.render(divUl.innerHTML, testing); 
divTable.innerHTML = Mustache.render(divTable.innerHTML, testing); 

Вот код на jsFiddle - http://jsfiddle.net/pRSjH/2/

+0

Пожалуйста, измените «Имя: Джон» в «имя_файл: Мэри», это не решит большую проблему, но позволит предотвратить бесполезные студент-коллекцию, напечатанную в таблице. –

ответ

1

divTable.innerHTML возвращает this вместо правильного шаблона , Возможно, это происходит потому, что браузер пытается отобразить недействительный HTML. Я думаю, что вы можете поместить свой шаблон в <script> тег, чтобы решить эту проблему (the fiddle)

+1

Эй, спасибо. Это работает. И я сделал это, создав отдельный файл table.tpl и вытащил его «на лету», и когда он был загружен, отобразились шаблоны с данными. – divinedragon

27

Вы можете также комментарий усов теги в TBODY. И таблица будет построена правильно.
Моего шаблона Пример:

<div id="template-table"> 
    <table> 
     <thead> 
      <th>Name</th> 
      <th>Age</th> 
     </thead> 
     <tbody> 
     <!--{{#students}}--> 
      <tr> 
       <td>{{name}}</td> 
       <td>{{age}}</td> 
      </tr> 
     <!--{{/students}}--> 
     </tbody> 
    </table> 
</div> 
+0

Человек, которого вы только что спасли. Это должен быть правильный ответ. благодаря – tiagojpdias

Смежные вопросы