2013-03-23 61 views
8

爲什麼相同的JSON目標代碼會生成ul元素的輸出,但不會生成table標記。鬍鬚模板不會在表格內呈現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

請更改「姓名:約翰」到「FNAME:瑪麗」,這不會解決更大的問題,但將防止在表打印無用學生集合。 – 2013-03-23 12:10:49

回答

1

divTable.innerHTML回報this,而不是正確的模板。 可能是因爲瀏覽器試圖呈現無效的HTML而發生。我想你可以把你的模板到<script>標籤來解決這個問題(the fiddle

+1

嘿謝謝。這樣可行。我做的是創建一個單獨的table.tpl文件,並在運行時取出它,並在加載時使用數據進行模板化。 – divinedragon 2013-03-24 03:50:37

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 2015-01-15 18:27:10