【问题标题】:Sencha EXT-JS 4: How to update data in storeSencha EXT-JS 4:如何更新存储中的数据
【发布时间】:2015-08-06 21:55:32
【问题描述】:

我有一个模型定义如下:

Ext.define('MyApp.model.TestModel', {
    extend: 'Ext.data.Model',

    fields: [
        {
            name: 'id'
        },
        {
            name: 'p1'
        },
        {
            name: 'p2'
        },
        {
            name: 'p3'
        },
        {
            name: 'p5'
        },
        {
            name: 'p6'
        },
        {
            name: 'p7'
        }
    ]
});

商店定义如下:

Ext.define('MyApp.store.TestStore', {
    extend: 'Ext.data.Store',
    requires: [
        'MyApp.model.TestModel'
    ],

    constructor: function(cfg) {
        var me = this;
        cfg = cfg || {};
        me.callParent([Ext.apply({
            autoLoad: true,
            storeId: 'TestStoreID',
            model: 'MyApp.model.TestModel',
            proxy: {
                type: 'ajax',
                url: 'getparams',
                reader: {
                    type: 'json',
                    root: 'getdata.params'
                }
            }
        }, cfg)]);
    }
});

控制器使用ajax代理加载数据如下:

var sIndex = 1;
AppGlobals.mystore = Ext.getStore('PollStore');
AppGlobals.mystore.load({params: {id: sIndex, p1:'1',p2:'2', p3:'3', p4:'5', p5:'6', p6:'7'}});

这一切都很好。我想在写入加载命令的地方修改 p1、p2、p3、p5、p6、p7 的值。也就是说,有什么方法可以代替 callint mystore.load() 将硬编码数据直接加载到存储中?

我的意思是,假设我有 6 个值定义为

var p1val = 1;
var p2val = 2;
var p3val = 3;
var p5val = 4;
var p6val = 5;
var p7val = 6;

无论如何我可以做到以下几点:

AppGlobals.mystore = Ext.getStore('PollStore');
AppGlobals.mystore.somefunction(p1val, p2val, p3val, p5val, p6val, p7val);

somefunction() 可以在哪里立即更新存储中的值,而我不必调用将从代理获取数据的 load() 函数?

【问题讨论】:

    标签: extjs store


    【解决方案1】:

    当然有一种方法可以做到这一点。您正在寻找 loadData 方法。 Here is a link to the method in Sencha Docs.

    请务必注意它需要两个参数 - 记录数组(数据),以及是否擦除当前存储记录。默认情况下 loadData 首先删除存储中的所有现有数据,我认为这就是您想要做的 - 如果是这样,您只需要第一个数组参数。

    下面是如何解决问题的代码示例:

     store.loadData(data, false);
     grid.reconfigure(store);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多