Treegrid, как использовать локальный JSON (прокси памяти) - PullRequest
0 голосов
/ 27 декабря 2011

Мой код:

Ext.onReady(function() {
    Ext.define('Unit', {
        extend: 'Ext.data.Model',
        fields: [
            {name: 'task',type: 'string'}
        ]
    });

    var store = Ext.create('Ext.data.TreeStore', {
        autoLoad: true,
        model: 'Unit',
        data:result,
        proxy: {
            type: 'memory',
            reader: {
                type: 'json'
            }
        }
    });
     var tree = Ext.create('Ext.tree.Panel', {
        id:"treepanel",
        title: 'Core Team Projects',
        width: 500,
        height: 300,
        renderTo: Ext.getBody(),
        collapsible: true,
        useArrows: true,
        rootVisible: false,
        store: store,
        multiSelect: true,
        singleExpand: true,
        //the 'columns' property is now 'headers'
        columns: [{
            xtype: 'treecolumn', //this is so we know which column will show the tree
            text: 'Task',
            flex: 2,
            sortable: true,
            dataIndex: 'task'
        },{
            //we must use the templateheader component so we can use a custom tpl
            xtype: 'treecolumn',
            text: 'Duration',
            flex: 1,
            sortable: true,
            dataIndex: 'duration',
            align: 'center'
        }]
    });
});

JSON: http://dev.sencha.com/deploy/ext-4.0.0/examples/tree/treegrid.json

Дерево не отображает мой результат, как это сделать? Я новый ExtJs4.

Извините, я не хочу использовать AJAX для получения результата.

Ответы [ 3 ]

0 голосов
/ 26 января 2013

См. Ссылку ниже. Вы можете получить четкое представление о клиентском прокси в Ext JS.

http://www.pointerunits.com/2013/01/ext-js4-client-proxies.html

Если ваши данные присутствуют на вашем сервере, вы должны использовать любые прокси-серверы для загрузки данных с сервера.

Ajax proxy - для загрузки данных с помощью вызова AJAX
JSONP-прокси - для загрузки данных с другого сервера (для избежания проблемы с CORS)
Rest Proxy - для загрузки данных, позвонив в остальные службы.

0 голосов
/ 27 декабря 2013

Атрибут data должен быть объявлен внутри прокси:

До ( Fiddle ):

var store = Ext.create('Ext.data.TreeStore', {
    model: 'Unit',
    data: result,
    proxy: {
        type: 'memory',
        reader: {
            type: 'json'
        }
    }
});

После: ( Fiddle ):

var store = Ext.create('Ext.data.TreeStore', {
    model: 'Unit',
    proxy: {
        type: 'memory',
        data: result,
        reader: {
            type: 'json'
        }
    }
});

Вуаля!

0 голосов
/ 28 декабря 2011

Если файл json не находится в том же домене, вам нужно использовать тип: 'jsonp'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...