我正在使用标准的Main / Row jTemplate模式,但出于某种原因,foreach仅在有多行(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}
我错过了什么?
答案 0 :(得分:0)
您正在尝试遍历$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。