1

このエラーが発生します: TypeError: records[i] is undefined

データベースからjsonを取得します。json にエンコードした配列は次のようになります。

array(
['data'] =>
array(

[0] =>
    array(

['id'] =>
    1
['text'] =>
    'COUNTRY1'
['leaf'] =>
    ['children'] =>
    array(

[0] =>
    array(

['id'] =>
    'HF'
['text'] =>
    'HF'
['leaf'] =>
)
[1] =>
    array(

['id'] =>
    'TF'
['text'] =>
    'TF'
['leaf'] =>
)
[2] =>
    array(

['id'] =>
    'SF'
['text'] =>
    'SF'
['leaf'] =>
)
)
)
[1] =>
    array(

['id'] =>
    2
['text'] =>
    'COUNTRY2'
['leaf'] =>
    ['children'] =>
    array(

[0] =>
    array(

['id'] =>
    'HF'
['text'] =>
    'HF'
['leaf'] =>
)
[1] =>
    array(

['id'] =>
    'TF'
['text'] =>
    'TF'
['leaf'] =>
)
[2] =>
    array(

['id'] =>
    'SF'
['text'] =>
    'SF'
['leaf'] =>
)
[3] =>
    array(

['id'] =>
    'SP'
['text'] =>
    'SP'
['leaf'] =>
)
)
)

私の店はこんな感じです。

Ext.define('AM.store.Trees', {
extend: 'Ext.data.TreeStore',
model: "Tree",
autoLoad: true,
proxy: {
    type: 'ajax',
    url : 'data/ajax.tree.php',
    extraParams:{
        action:'getTree'
    },
    actionMethods: {
        create : 'POST',
        read   : 'POST',
        update : 'POST',
        destroy: 'POST'
    },
    reader: {
        type: 'json',
        root: 'data'
    }
}
});

最初のノード「COUNTRY1」しか開けません。すべてのサブパーティが表示されました。しかし、次のノードをクリックすると、エラーが表示されます。

このエラーが発生するのはなぜですか? 誰かがこれで私を助けてくれますか?

4

1 に答える 1

1

問題は、同じリーフ (同じ ID を持つ) が複数のブランチに表示されることです。ExtJS ツリーはそれを処理しません。ID を持ち込まないか、ツリー全体で一意になるように ID をカスタマイズしてください。

于 2013-05-13T19:03:03.947 に答える