3

次のように定義されたモデルがあります。

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'}});

これはすべて正常に機能しています。load コマンドが記述されている場所で、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()

4

1 に答える 1