' getNewRecords'添加非幻像记录Extjs时返回空数组

时间:2017-06-28 15:58:50

标签: extjs store record

我需要将一个非虚拟记录从一个商店(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);

1 个答案:

答案 0 :(得分:0)

不要在用于插入记录的对象中添加ID属性。

{
    nomber_item: 'xyz',
    Description_item: 'abc'
}

这将解决问题。