我让你使用ExtJS6假设你的目标是通过这些参数来筛选结果:
在你的榜样,你定义的数据前面。考虑到这一点,你应该能够使用“过滤器”的方法在商店:
// use filter method to filter the data on the front-end
var myStore = Ext.create('Ext.data.Store', {
model: 'User',
data : [
{id: '1', firstName: 'Peter', lastName: 'Venkman'},
{id: '2', firstName: 'Egon', lastName: 'Spengler'},
{id: '3', firstName: 'Ray', lastName: 'Stantz'},
{id: '4', firstName: 'Winston', lastName: 'Zeddemore'}
]
});
myStore.filter('id', '1');
// making use of storeId
Ext.getStore('myStore').filter('id', '1');
如果从服务器(通过一个Ajax请求,例如)请求数据最简单的方式请求数据使用params为通过在负载通话将PARAMS:
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'string'},
{name: 'firstName', type: 'string'},
{name: 'lastName', type: 'string'},
{name: 'age', type: 'int'},
{name: 'eyeColor', type: 'string'}
]
});
var myStore = Ext.create('Ext.data.Store', {
storeId: 'myStore',
model: 'User',
proxy: {
type: 'ajax',
url: '/users.json',
reader: {
type: 'json',
rootProperty: 'users'
}
},
autoLoad: true
});
// adding params on load
Ext.getStore('myStore').load({
params: {id: '1'}
});
如果你想为每个负载情况下自动注入参数,你可以在“beforeload”事件创建一个侦听器,并添加PARAMS:
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'string'},
{name: 'firstName', type: 'string'},
{name: 'lastName', type: 'string'},
{name: 'age', type: 'int'},
{name: 'eyeColor', type: 'string'}
]
});
var myStore = Ext.create('Ext.data.Store', {
storeId: 'myStore',
model: 'User',
proxy: {
type: 'ajax',
url: '/users.json',
reader: {
type: 'json',
rootProperty: 'users'
}
},
autoLoad: true,
listeners: {
// add params on every store load by injecting on the beforeload event
beforeload: function(store, operation, eOpts) {
operation.setParams({id: '1'});
}
}
});
// the beforeload event kicks off our code to inject params
Ext.getStore('myStore').load();
真棒ŧ hank克里斯托弗巴达卢科 – user1234
很高兴你发现我的答案有帮助! –