jTemplate Foreach不呈现单行

时间:2012-11-15 14:55:34

标签: jquery jtemplates

我正在使用标准的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>&nbsp;</td>
        <td>&nbsp;</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}

我错过了什么?

1 个答案:

答案 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