ExtJs中如何传参存储

How to pass parameters to store in ExtJs

我正在处理需要绑定组合框但无法传递参数的显示。下面是我的代码,请提供传递参数的方法。

//store
Ext.define('NetworkStore', {
    extend: 'Ext.data.Store',
    alias: 'NetworkStore',
    fields: ['Id', 'value'],
    storeId: 'NetworkStore', 
    autoLoad: true,
    proxy: {
        type: 'ajax',
        useDefaultXhrHeader: false,
        actionMethods: { create: "POST", read: "GET", update: "POST", destroy: "POST" },
        headers: { 'Content-Type': 'application/x-www-form-urlencode' },
        limitParam: false,
        startParam: false,
        pageParam: false,
        extraParams: {
            Style: 1
        },
        url: 'url',
        reader: {
            type: 'json'
        }
    }
});

xtype: 'combo',
name: 'NetworkIDList',
store: {
        type: 'NetworkStore',
        'Style': 3 //parameter
        //params: {  // tried this way as well but did not work for me.
        //  Style: 3
        //}
        }

注意:商店在单独的文件中定义。

您可以按如下方式更改参数:

let store = Ext.data.StoreManager.lookup('NetworkStore'),

    // params are part of the proxy, not the store
    proxy = store.getProxy(),

    // make sure you keep the other params
    newParams = Ext.apply(proxy.getExtraParams(), {style: '3'});

// set the params to the proxy    
proxy.setExtraParams(newParams);

// do whatever you plan to do with the store
store.load();

如果你想绑定一个值来存储代理参数,看看这个fiddle

商店应按以下格式传递。

store: {
        type: 'NetworkStore',
        proxy: {
                extraParams: {
                    Style: 3
                }
            }
        }