ExtJS商店添加调用既创建和销毁
this.store = Ext.create('Ext.data.Store', {
fields: [
'id',
'name',
'Address',
'status',
],
autoLoad: auto,
autoSync: auto,
remoteSort: true,
proxy: {
type: 'ajax',
api: {
create: '../../create.php',
read: '../../read.php',
destroy: '../../destroy.php',
update: '../../update.php'
},
reader: {
type: 'json',
root: '__data',
totalProperty: 'grandTotal'
},
writer: {
type: 'json',
root: '__data'
},
listeners: {
exception: function( t, response, op ) {
var _da = Ext.decode( response.responseText );
if( _da ) {
if( _da.message == "ExistingName" ) {
_da.message = Locale.gettext('name already exists');
} else {
frm = _self.subnetEditor.down('form');
name_field = frm.down('textfield[name=name]');
}
name_field.markInvalid(Locale.gettext(_da.message));
}
showMsg( _da.success, _da.message );
if( op.action == 'create' || op.action == 'update' ) {
_self.store.rejectChanges();
_self.store.load();
}
}
}
}
}
});
这是调用四个php文件来执行CRUD的商店,以及一些侦听器来处理重复的名称。
removeSelected: function() {
var _self = this;
Ext.Msg.show( {
title: Locale.gettext( 'Remove selected?' ),
msg: Locale.gettext( 'Are you sure you want to remove ALL SELECTED items?' ),
icon: Ext.Msg.WARNING,
buttons: Ext.Msg.OKCANCEL,
buttonAlign: 'right',
fn: function( button ) {
if( button == 'ok' ) {
var grid = _self.down( 'grid' );
if( grid ) {
var selection = grid.getSelectionModel().getSelection();
if( selection.length ) {
_self.store.remove( selection );
if( _self.useGridRowEditing ) {
_self.store.sync();
}
}
}
}
}
} );
}
这里是删除功能将删除选定的项目,我有store.add(项目)添加记录。 但问题是如果我运行remove函数,然后store.add添加任何项目,store.add将一起触发create和destroy。 第二次销毁会在我运行remove函数时第一次发布确切的数据。 我想,store.add只会在代理中调用create api,但为什么会调用destroy?
我看到删除引发异常。 如果抛出异常,这是否意味着remove操作仍处于等待状态? 所以它批量添加和删除在一起?
这不是由ExtJS引起的,它会导致服务器响应“[null]”。 null数组被认为是一个异常,我猜这个异常会导致请求变为挂起。
链接地址: http://www.djcxy.com/p/80029.html上一篇: ExtJS store add calls both create and destroy
下一篇: Store not syncing when sync function is overridden Sencha Touch 2.3