1

Ext.XTemplate ドキュメントには次のように書かれています。

tpl タグと for 演算子は、提供されたデータ オブジェクトを処理するために使用されます。

  • for で指定された値が配列の場合、自動入力され、配列内の各アイテムの tpl タグ内のテンプレート ブロックが繰り返されます。
  • for="." の場合 が指定されている場合、提供されたデータ オブジェクトが検査されます。
  • 配列の処理中、特殊変数 {#} は現在の配列インデックス + 1 (0 ではなく 1 から開始) を提供します。

最初のルールに従い、パネルのデータ構成にオブジェクトの配列を割り当てますが、空白が表示されるだけです。コードは次のとおりです。

                  {
                 xtype : 'panel',
                 tpl : new Ext.XTemplate([
                          '<tpl>',
                            '<div>',
                                '{index}',
                            '</div>',
                          '</tpl>'
                 ]),
                 data : [
                         {index : '11'},
                         {index : '12'},
                         {index : '13'}
                 ]
              }

だから私は2番目のルールに従い、を追加し'for="."'ます'<tpl>'、それは機能します! 'for="."'だから、 Ext.XTemplate で配列をループしたいだけなら、それが本当に追加しなければならないことを意味するのかどうか知りたいですか?

また'for="."'、ステートメントを使用するのは本当に悪い習慣ですか?

4

1 に答える 1

0

はい、<tpl for=".">「アクティブな」オブジェクトを反復処理することを意味します。たとえば、「アクティブな」オブジェクトは、反復中に内側の配列を指しているため、外側の配列から内側の配列に変更されます。

var tpl = new Ext.XTemplate([
    '<tpl for=".">', // "." points to the outer array
        '<tpl for=".">', // "." points to each inner array
            '{.}',
        '</tpl>',
    '</tpl>'
]);

console.log(tpl.apply([
    [1, 2],
    [3, 4]
]));
于 2013-09-09T04:20:04.400 に答える