我在使用store.load传递querystring(参数)的ExtJS4时遇到问题

时间:2011-07-14 02:44:05

标签: proxy extjs4

我无法将参数传递到控制器的GetAll方法中。我尝试过Filter如下,但没有运气。有什么建议吗?

Ext.define('AM.store.Sessions', {
    extend: 'Ext.data.Store',
    model: 'AM.model.Session',
    autoLoad: false,

    proxy: {
        type: 'ajax',
        api: {
            read: 'Session/GetAll',
            update: 'data/updateUsers.json'
        },
        reader: {
            type: 'json',
            root: 'Data',
            successProperty: 'success'
        },
        filters: [
            new Ext.util.Filter({
                    property: 'eyeColor',
                    value: 'brown'
                })
        ]
    }
});

1 个答案:

答案 0 :(得分:3)

我不确定你在追求什么。但是在您的代理中声明extraParams会将该参数放在商店的每个load()上。像这样。

Ext.define('AM.store.Sessions', {
    extend: 'Ext.data.Store',
    model: 'AM.model.Session',
    autoLoad: false,

    proxy: {
        type: 'ajax',
        api: {
            read: 'Session/GetAll',
            update: 'data/updateUsers.json'
        },
        extraParams:{
            eyeColor:'brown'
        } 
        reader: {
            type: 'json',
            root: 'Data',
            successProperty: 'success'
        }
    }
});

您还可以在商店和modifu参数上收听“beforeLoad”事件。

或..你可以将参数传递给load()函数,因为这个

var myStore = Ext.create('AM.store.Session');

myStore.load({
     params:{
         eyeColor:'brown'
     }
})