0

我正在使用标准的 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 "
        }
    }
}

j模板代码:

{#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}

我错过了什么?

4

1 回答 1

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 "
            }
        ]
    }
};

这是一个演示

于 2012-11-15T16:39:58.293 回答