如何将参数传递给存储以加载特定数据

时间:2012-11-24 10:57:04

标签: sencha-touch-2

我正在Sencha Touch 2中创建一个搜索表单。表单已创建,字段全部存在。但是如何调用/ users / {param} url?我有一个商店,它可以加载“所有”用户,但我想加载特定的数据.. Thx。

编辑:

Ext.define('TCM.store.Users', {
    extend: 'Ext.data.Store',

    config: {
        model: 'TCM.model.User',
        sorters: 'name',
        proxy: {
            type: 'rest',
            url: 'http://local.test.eu/app_dev.php/api/users'
        }
    }
});

2 个答案:

答案 0 :(得分:4)

您只需要获取商店的代理并设置extraParams

Ext.getStore('Users').getProxy().setExtraParams({
  param: myParam
});

如果您已存储所有存储的数据,您也可以过滤它而不是重新加载它。

希望这有帮助

答案 1 :(得分:2)

你可以像这样将params传递给store.load方法

Ext.getStore('Users').load({
   params : { param : 'param1'}
});

如果您需要根据参数构建特定网址,则应覆盖代理

中的buildUrl方法
 buildUrl : function (request) {
            var url = this.getUrl(request),//  /users/
                params = request.getParams() || {};

            url = url + params.param; // /users/param1
            request.setUrl(url);
            return this.callParent([request]);
    }