我使用标准的Main/Row模式,但是由于某些原因,jTemplate只在有多行( StatusDetail)时才起作用。如果是单行数据,则不会呈现(即foreach中的行。在此之前的表格部分仍会呈现)。
Data:
{
"MG": {
"Status": "In Transit",
"StatusDetail": {
"StatusCode": "Actual Pickup",
"Date": {
"@type": "actual",
"#text": "11/13/2012 09:00"
},
"Location": "Mentor, OH "
}
}
}jTemplate代码:
{#template MAIN}
<table id="results_hdr" cellpadding="5" cellspacing="0">
<tr>
<td class="FieldLabels">Status</td>
<td>{$T.MG.Status}</td>
<td> </td>
<td> </td>
<td class="FieldLabels">Name</td>
<td>{$T.MG.Name}</td>
</tr>
<tr><td colspan="6" style="background-color:White;"></td></tr>
<tr>
<td>Date</td>
<td colspan="3">Detail</td>
<td colspan="2">Location</td>
</tr>
{#foreach $T.MG.StatusDetail as SD}
{#include ROW root=$T.SD}
{#/for}
</table>
<br />
{#/template MAIN}
{#template ROW}
<tr>
<td>
{$T.Date["#text"]}</td>
<td colspan="3">
{$T.StatusCode}</td>
<td colspan="2">
{$T.Location}</td>
</tr>
{#/template ROW}我遗漏了什么?
发布于 2012-11-16 00:39:58
您正试图遍历$T.MG.StatusDetail,但它不是一个数组,因此{#foreach $T.MG.StatusDetail as SD}语句没有执行您期望的操作。
将您的数据更改为以下内容,以便MG.StatusDetail实际上是一个数组,并且它可以正常工作:
数据:
var data = {
"MG": {
"Status": "In Transit",
"StatusDetail": [
{
"StatusCode": "Actual Pickup",
"Date": {
"type": "actual",
"text": "11/13/2012 09:00"
},
"Location": "Mentor, OH "
}
]
}
};这是一个DEMO。
https://stackoverflow.com/questions/13400076
复制相似问题