我需要将一个非虚拟记录从一个商店(ItemStore)添加到另一个商店(ItemEvaluacionStore)。记录已经分配了id,因此getNewRecords函数返回一个空数组,而不是一个包含我已经插入的新记录的数组。
在文档中说明如下:
getNewRecords():Ext.data.Model []
返回所有Model实例 目前是幻影(例如没有身份证)或拥有身份证 但尚未在此商店中保存(将其他商店中的非虚拟记录添加到此商店时会发生这种情况)自2004年以来可用
我使用了insert和add方法,但得到了相同的结果。 该记录实际上已添加到itemEvaluacionStore中,正如我在控制台中打印记录时所看到的那样。我顺便使用ExtJS 4.1.1。
如何在itemEvaluacionStore中插入新记录?请参阅以下商店和型号的代码:
ItemStore:
Ext.define('RH.store.evaluaciones.ItemStore', {
extend: 'Ext.data.Store',
model: 'RH.model.evaluaciones.Item',
autoLoad: true,
autoSync: false
});
档案:
Ext.define('RH.model.evaluaciones.Item', {
extend: 'Ext.data.Model',
fields: [
'id', 'nombre_item', 'descripcion_item'
],
proxy: {
type: 'rest',
method: 'get',
url: 'app/proxy.evaluacion.php',
extraParams: {
act: 'getAllItems'
},
reader: {
type: 'json',
root: 'results',
successProperty: 'success'
}
}
});
ItemEvaluacionStore:
Ext.define('RH.store.evaluaciones.ItemEvaluacionStore', {
extend: 'Ext.data.Store',
model: 'RH.model.evaluaciones.ItemEvaluacion'
});
ItemEvaluacion:
Ext.define('RH.model.evaluaciones.ItemEvaluacion', {
extend: 'Ext.data.Model',
fields: [
'id', 'nombre_item', 'descripcion_item'
],
autoSync: true,
proxy: {
type: 'ajax',
method: 'GET',
url: 'app/proxy.evaluacion.php',
params: {
act: 'getItems'
},
reader: {
type: 'json',
root: 'results',
successProperty: 'success'
}
}
});
添加到商店的记录代码:
var stoEv = Ext.getStore('evaluaciones.ItemEvaluacionStore');
var newRec = Ext.create('RH.model.evaluaciones.ItemEvaluacion',
{
nombre_item: item.data.nombre_item,
descripcion_item: item.data.descripcion_item,
id: item.data.id
});
stoEv.insert(0,newRec);
答案 0 :(得分:0)
不要在用于插入记录的对象中添加ID属性。
{
nomber_item: 'xyz',
Description_item: 'abc'
}
这将解决问题。