【发布时间】:2016-06-08 09:25:03
【问题描述】:
我使用 ExtJS 6.0.0,带有 TreeStore 的 REST 代理。因此,当我从商店 store.remove(records) 中删除一些记录时,然后尝试将更改与服务器同步并调用 store.sync() 并没有发生任何事情!未调用同步的回调函数。
url: '/admin/pages',以正确的格式返回简单的嵌套数据。 查看和更新操作运行良好。
我做了一个简单的代码片段来说明问题:
Ext.define('Pages', {
extend: 'Ext.data.TreeModel',
fields: [
{name: 'id', type: 'int'},
{name: 'parent_id', type: 'int'},
{name: 'title', type: 'string'}
]
});
Ext.onReady(function() {
var store = Ext.create('Ext.data.TreeStore', {
model: 'Pages',
proxy: {
type: 'rest',
url: '/admin/pages',
}
});
var tree = Ext.create('Ext.tree.Panel', {
width: 500,
height: 300,
renderTo: Ext.getBody(),
rootVisible: false,
store: store,
multiSelect: true,
columns: [{
xtype: 'treecolumn',
text: 'title',
sortable: true,
dataIndex: 'title'
}],
tbar: [
{
text: 'Delete',
handler: function () {
var records = tree.getSelection();
store.remove(records); // remove nodes from tree
store.sync(); // do nothing!! WHY?
},
}
]
});
【问题讨论】: