1

我正在使用拖放创建类似于TreeGrid 示例的树面板。唯一的问题是项目在 Firefox 浏览器的树面板中正确显示,而在 Chromium 中,树网格是空的。这怎么可能?

发送到服务器的 JSON 数据:

{"text":".","children": [
        {
                "id":null,
                "name":"en",
                "visible":false,
                "expanded":true,
                "leaf":false,
                "children":{
                        "id":5,
                        "name":"/",
                        "visible":false,                        
                        "expanded":true,
                        "leaf":true,
                        "children":[]                        
                }
        }]
}

模型

Ext.define('Example.model.WebTreeItem', {
    extend: 'Ext.data.Model',
    idProperty: 'id',
    fields: [
        {name: 'id',        type: 'int',    defaultValue: 0},
        {name: 'visible',   type: 'boolean' },
        {name: 'name',      type: 'string'  }
    ]
});

店铺

Ext.define('Example.store.WebTreeItems', {
    extend: 'Ext.data.TreeStore',
    model: 'Example.model.WebTreeItem',    
    autoLoad: true,
    proxy: {
        type: 'ajax',
        api: {
            read : 'getlist.json'
        },
        reader: {
            type: 'json'
        }
    }
});

看法

Ext.define('Example.view.webitem.Tree', {
    extend: 'Ext.tree.Panel',
    alias : 'widget.webtreeitem',

    title : 'Web items',
    store: 'WebTreeItems',
    rootVisible: false,
    multiSelect: true,
    singleExpand: false,
    collapsible: true,
    selModel: Ext.create('Ext.selection.CheckboxModel'),
    height: 800,
    renderTo: 'webstructure-tree',
    columns: [{
        xtype: 'treecolumn',
        text: 'Name',
        flex: 2,
        sortable: true,
        dataIndex: 'name'
    },{
        xtype: 'booleancolumn',
        text: 'Visible',
        flex: 1,
        dataIndex: 'visible',
        sortable: false
    }],
    viewConfig: {
        plugins: {
            ptype: 'treeviewdragdrop'
        }
    }]
});

使用自动加载依赖项

Ext.Loader.setConfig({enabled:true});

Ext.application({
 ...
});

任何建议将不胜感激。

4

1 回答 1

0

好吧,我以为我发送的是上述 JSON,但实际上我发送的是这样的内容(带转义引号的引用响应)并且 Chromium 无法正确读取它

"{\"text\":\".\",\"children\": [
        {
                \"id\":null,
                \"name\":\"en\",
                \"visible\":false,
                \"expanded\":true,
                \"leaf\":false,
                \"children\":{
                        \"id\":5,
                        \"name\":\"/\",
                        \"visible\":false,                        
                        \"expanded\":true,
                        \"leaf\":true,
                        \"children\":[]                        
                }
        }]
}"
于 2011-08-13T12:28:28.980 回答