0

次の JSON を HandleBars でループしようとしています。

{
"IndexValues": {
    "inv": {
        "1": {
            "live": {
                "INV": "1",
                "ITP": 719.166962
            },
            "day": 14,
            "week": 85,
            "month": 232
        },
        "2": {
            "live": {
                "INV": "2",
                "ITP": 719.166962
            },
            "day": 14,
            "week": 93,
            "month": 237
        },
        "dayK": 28,
        "week": 178,
        "montk": 469
    }
}
}

上記の JSON は、次のハンドルバーでループしようとしています。

{{#data.IndexValues.inv}}
    <!-- the following is showing data, but is not dynamic -->
    {{this.1.live.INV}}
    <br>
    {{this.2.live.INV}}

    <!-- the following doenst work -->
    {{#this}}
        {{this.live.INV}}
    {{/this}}

    <!-- the following is showing data, but is not dynamic -->
    {{#this}}
        {{this.1.live.INV}}
    {{/this}}
{{/data.IndexValues.inv}}

問題は、「inv」が動的であり、1 ~ 256 の範囲である可能性があることです。

4

1 に答える 1

0

ハンドルバー ループは、オブジェクト フィールド ({ } 表記) ではなく、配列要素 ( [ ] 表記) に対してのみ機能します。サンプル JSON には配列が含まれていません。(a) リストを持つように JSON を変更するか、(b) 新しい配列を作成してそれを Handlebars テンプレートに渡します。

(a) JSON を変更 (「inv.data」リストを追加)

{
"IndexValues": {
    "inv": {
        data: [{
            "id" : 1,
            "live": {
                "INV": "1",
                "ITP": 719.166962
            },
            "day": 14,
            "week": 85,
            "month": 232
        },
        {
            "id" : 2,
            "live": {
                "INV": "2",
                "ITP": 719.166962
            },
            "day": 14,
            "week": 93,
            "month": 237
        }],
        "dayK": 28,
        "week": 178,
        "montk": 469
    }
}
}

ハンドルバー テンプレートは次のようになります。

{{#data.IndexValues.inv.data}}
    ...
{{/#data.IndexValues.inv.data}}
于 2012-12-20T04:38:40.163 に答える