3

私は3つのメインメニューポイントを持つjsonを持っています。最初のメニューポイントにはサブメニューが 1 つあるため、メニューポイント 1 は「リーフ」で​​はありません。Symbol フォルダをクリックすると、メニュー全体 (json ファイル全体) が再びサブメニューの下に表示されます。だからその無限大。誰かがこれで私を助けてくれますか? ありがとうございました!!

ここに私のファイルがあります:

アプリ/データ/tree.json

{
'result':
    [
        {
            "text": "Point1",
            'children':[
                {
                    "text": "SubPoint1",
                    'leaf':true
                },
            ]
        },
        {   "text": "Point2",
            'leaf':true
        },
        {
             "text": "Point3",
             'leaf':true
        },

]

}

ビュー/TreeMenu.js

Ext.define('App.view.TreeMenu', {
extend: 'Ext.tree.Panel',
alias: 'widget.treemenu',
title:'Title',
store: 'TreeMenu'

});

store/TreeMenu.js

Ext.define('App.store.TreeMenu', {
extend: 'Ext.data.TreeStore',
requires: 'App.model.TreeMenu',
model: 'App.model.TreeMenu',
proxy: {
    type: 'ajax',
    url: 'app/data/tree.json',
    reader: {
        type: 'json',
        root: 'result'
    }
}

});

モデル/TreeMenu.js

Ext.define('App.model.TreeMenu', {
extend: 'Ext.data.Model',
fields: [
    { name: 'name', type: 'int', leaf:false, text:'name'},
    { name: 'value', type: 'string', leaf:false, text:'value'},
]

});

コントローラー/TreeMenu.js

Ext.define('App.controller.TreeMenu', {
extend: 'Ext.app.Controller',
views: ['TreeMenu'],
models: ['TreeMenu'],   
stores: ['TreeMenu'],
onLaunch: function() {
    var treeStore = this.getTreeMenuStore();
    treeStore.load({
        //callback: this.onStationsLoad,
        scope: this
    });
},
refs: [{
    selector: 'tree',
    ref: 'treemenu'
}],
init: function() {
    this.control({
        'treemenu': {
            itemclick : this.treeItemClick  
        }
    });

},
treeItemClick : function(view, record) {
    console.log(record);
}

});

4

3 に答える 3

0

Json ツリーの子に「leaf : true」があるものはありますか?

多分それは問題です...

- 編集:

葉の値があることがわかりました。

多分これかもしれません:

'children':[

                {
                    "text": "SubPoint1",
                    'leaf':true
                }-->, <------------------------- ERASE final comma.
            ]
于 2013-05-08T12:33:02.853 に答える
0

私はそれが役立つことを確認できます。トリックはjson形式です

var data = {
"result": [{
    "text": "Point1",
        "children": [{

問題は、ノードの配列が最初に「結果」の下にあり、次に「子」の下にあることです。これらは同じであり、プロキシのルート構成で使用されている必要があります

    var data = {
"result": [{
    "text": "Point1",
        "result": [{


root: 'result'

ミハル

于 2014-03-12T17:44:02.233 に答える