私は宣言されStore
たプロキシを持つを使用しています。api
で例外を処理できexception listener
ますが、レコードが正常に削除されたときにユーザーにメッセージを送信するにはどうすればよいですか?
私の店は次のようになります。
Ext.define('ContatosApp.store.PsContatosStore', {
extend: 'Ext.data.Store',
requires: [
'ContatosApp.model.PsContatosModel'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: true,
autoSync: true,
model: 'ContatosApp.model.PsContatosModel',
storeId: 'MyJsonStore',
pageSize: 15,
trailingBufferZone: 20,
proxy: {
type: 'ajax',
api: {
read: 'contact/list',
create: 'contact/save',
update: 'contact/update',
destroy: 'contact/delete'
},
directionParam: 'order',
limitParam: 'max',
startParam: 'offset',
url: '',
reader: {
type: 'json',
root: 'contatos'
},
writer: {
type: 'json',
root: ''
},
listeners: {
exception: {
fn: me.onAjaxException,
scope: me
}
}
}
}, cfg)]);
},
onAjaxException: function(proxy, response, operation, eOpts) {
var data = Ext.JSON.decode(response.responseText);
Ext.MessageBox.show({
title: 'Error',
msg: data.message,
icon: Ext.MessageBox.ERROR,
buttons: Ext.Msg.OK
});
}
});
そして、私の削除ボタンハンドラーは次のとおりです。
var grid = Ext.ComponentQuery.query('#MyGridPanel');
var selection = grid[0].getSelectionModel().getSelection()[0];
if (selection) {
Ext.getStore('PsContatosStore').remove(selection);
}
また、ストアからレコードを削除しても ajax 呼び出しでエラーが返された場合、グリッドをリロードしてレコードを再度表示する必要がありますか、それともこれを処理するためのより良い方法はありますか?