0


extjsコードで同時に3つの配列をループしたいのですが、機能しません!私はテストを行っており、2つのアレイでの結果は問題ありませんが、3つのアレイは機能しません

var json = {
    name : 'tom',
    rowTitleArr : ['1','2'],
    colTitleArr : ['a','b'],
    optionArr : ['x','y']
}
var tpl = [
    '{name}<br>',
    '<tpl for="rowTitleArr">',
        '--{.}<br>',
        '<tpl for="parent.colTitleArr">',
            '----{.}<br>',
            '<tpl for="parent.parent.optionArr">',
                '--------{.}<br>',
             '</tpl>',
        '</tpl>',
    '<tpl>'
];
var tpl = new Ext.XTemplate(tpl);
tpl.overwrite(panel.body,json);

結果は:
tom
--1
---- a
---- b
--2
---- a
---- b
そうあるべきだと思います:
-1
---- a
---- ---- x
-------- y
---- b
-------- x
-------- y
--2
---- a
----- --- x
-------- y
---- b
-------- x
-------- y
...なぜですか?

4

1 に答える 1

2

これを機能させる唯一の方法は、rowTitleArr をオブジェクトとして使用することでした。

値でparent.parentが不明であるため、例は機能しません。U は、テンプレートの exec 関数で設定できます。

var data = {
        name: 'xxx',
        rowTitleArr: [{number:'1'},{number:'2'},{number:'3'}],
        colTitleArr: ['a', 'b', 'c'],
        optionArr : ['x','y']
    };
    var tpl = [
        '{name}',
        '<br/>',
        '<tpl for="rowTitleArr">',
        '----{number}<br>',
        '<tpl exec="values.parent = parent;"></tpl>',
            '<tpl for="parent.colTitleArr">',
        '---------{.}<br>',                    
                    '<tpl for="parent.parent.optionArr">',
                '----------------{.}<br>',
             '</tpl>',
            '</tpl>',
        '</tpl>'];

フィドル: http://jsfiddle.net/johanhaest/2WEVE/1/

于 2013-02-26T16:26:13.123 に答える