以下はExtJSの場合です
だから私は私の見解で次のことを試みています。(基本的にはレコードを削除します) しかし、何らかの理由で、サーバーに「destroyRecord」呼び出しを送信することさえしません。なぜこれが起こっているのでしょうか?以下のコード。
以下の module.getResults と module.destroyRecord は、実際のサーバー呼び出しを作成する同じ関数を呼び出すことに注意してください。module.getResults が適切に呼び出され、レコードを適切に取得できますが、「destoryRecord」セクションにヒットするようには見えません。hasMany パラメータと関係があるのか どうか疑問に思っていますが、肯定的ではありません。どんな助けでも有益です。
意見:
var record = this.down('form').getRecord();
var store = Ext.getStore('ModuleStore');
store.remove(record);
店:
Ext.define('MyApp.store.ModuleStore', {
extend: 'Ext.data.Store',
requires: [
'MyApp.model.ModuleModel'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: true,
autoSync: true,
filterOnLoad: false,
remoteFilter: true,
remoteSort: true,
sortOnLoad: false,
storeId: 'module',
model: 'MyApp.model.ModuleModel',
buffered: true,
listeners: {
write: {
fn: me.onStoreWrite,
scope: me
},
remove: {
fn: me.onStoreRemove,
scope: me
},
datachanged: {
fn: me.onStoreDataChangeD,
scope: me
}
}
}, cfg)]);
},
onStoreRemove: function(store, record, index, options) {
console.log('remove'); // Isn't called for some reason
}
});
モデル:
Ext.define('MyApp.model.ModuleModel', {
extend: 'Ext.data.Model',
uses: [
'MyApp.model.ModuleHistoryModel'
],
idProperty: 'id',
fields: [
{
name: 'id',
type: 'int'
},
{
name: 'AmendmentNumber',
type: 'string'
},
{
name: 'contract_id',
type: 'int'
}
],
proxy: {
type: 'direct',
api: {
create: module.createRecord,
read: module.getResults,
update: module.updateRecords,
destroy: module.destroyRecord
},
reader: {
type: 'json',
root: 'data'
}
},
hasMany: {
model: 'MyApp.model.ModuleHistoryModel',
foreignKey: 'Module_id',
name: 'history'
}
});
モジュール履歴モデル:
Ext.define('MyApp.model.ModuleHistoryModel', {
extend: 'Ext.data.Model',
uses: [
'MyApp.model.MaintTypeModel'
],
fields: [
{
name: 'id',
type: 'int'
},
{
name: 'ContractNumber',
type: 'string'
},
{
name: 'MaintType_id',
type: 'int'
},
{
name: 'Module_id',
type: 'int'
}
],
proxy: {
type: 'direct',
api: {
create: modulehistory.createRecord,
read: modulehistory.getResults,
update: modulehistory.updateRecords,
destroy: modulehistory.destroyRecord
},
reader: {
type: 'json',
root: 'data'
}
},
belongsTo: {
associationKey: 'MaintType',
model: 'MyApp.model.MaintTypeModel',
getterName: 'getMaintType',
foreignKey: 'MaintType_id',
setterName: 'setMaintType'
}
});
メインタイプ モデル:
Ext.define('MyApp.model.MaintTypeModel', {
extend: 'Ext.data.Model',
idProperty: 'id',
fields: [
{
name: 'id',
type: 'int'
},
{
name: 'Type',
type: 'string'
}
],
proxy: {
type: 'direct',
api: {
create: mainttype.createRecord,
read: mainttype.getResults,
update: mainttype.updateRecords,
destroy: mainttype.destroyRecord
},
reader: {
type: 'json',
root: 'data'
}
}
});