【发布时间】:2014-08-20 21:32:24
【问题描述】:
我使用 ExtJS 4.2.2。用于浏览和管理文件夹的存储定义如下:
Ext.define('hds.store.CaseFolders', {
extend: 'Ext.data.Store',
requires: [
'app.model.Folder',
'Ext.data.proxy.Rest',
'Ext.data.reader.Json',
'Ext.data.writer.Json'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: false,
model: 'app.model.Folder',
storeId: 'Folders',
proxy: {
type: 'rest',
url: '/api/folders.json',
reader: {
type: 'json',
messageProperty: 'message',
root: 'data'
},
writer: {
type: 'json',
writeAllFields: false,
root: 'data'
}
}
}, cfg)]);
}
});
它使用这个模型:
Ext.define('app.model.Folder', {
extend: 'Ext.data.Model',
requires: [
'Ext.data.Field'
],
fields: [
{
name: 'name',
type: 'string'
},
{
name: 'parentId',
type: 'int'
},
{
name: 'type',
type: 'string'
}
]
});
可以添加、重命名和删除文件夹。
当更改文件夹的名称时,例如并使用 store.sync(),记录会正确同步到服务器,并使用包含 id 和 name 属性的 PUT。
但是,在删除文件夹时,store.sync() 不会向服务器发送任何请求。为同步添加了一个回调函数,但根本没有调用它。
似乎 REST 存储(代理?)“认为”没有任何东西可以同步到服务器。
为什么会这样?
【问题讨论】: