初学Extjs,建树时使用了本地的JSON文件,但出现重复的问题,如图
json如下:
{
"success": true,
"deps": [
{
"id": 1,
"text": "Class 1",
"leaf": false,
"children": [
{
"id": 2,
"text": "Class 1.1",
"leaf": true,
"children": []
},
{
"id": 3,
"text": "Class 1.2",
"leaf": true,
"children": []
}
]
},
{
"id": 4,
"text": "Class 2",
"leaf": false,
"children": [
{
"id": 5,
"text": "Class 2.1",
"leaf": true,
"children": []
}
]
}
]
}
model如下:
Ext.define('App.model.Dep', {
extend: 'Ext.data.Model',
idProperty: 'depmodel',
fields: [{
name: 'id',
type: 'int'
}, {
name: 'text',
type: 'string'
}]
});
store:
Ext.define('App.store.DepTree', {
extend: 'Ext.data.TreeStore',
alias: 'store.deptree',
model: 'App.model.Dep',
autoLoad: false,
root: {
id: 0,
text: 'root',
leaf: false,
expanded: true
},
proxy: {
type: 'ajax',
url: 'data/dep.json',
reader: {
type: 'json',
rootProperty: 'deps',
successProperty: 'success'
}
},
listeners: {
beforeload: function (store, operation, opts) {
//阻止加载
if (!store._can_load_) {
return false;
}
return true;
}
}
});
treepanel:
Ext.define('App.view.dep.DepTree', {
extend: 'Ext.tree.Panel',
alias: 'widget.deptree',
uses: [
'App.store.DepTree'
],
title: '部门',
glyph: 0xf0c9,
rootVisible: false,
lines: true,
viewModel: 'dep',
listener: {
beforeload: function () {
}
},
initComponent: function () {
var me = this;
var store = Ext.create('App.store.DepTree');
me.store = store;
me.callParent();
}
});