在 ExtJs 6 中加载商店时如何发送自定义过滤器参数
How to send custom filter parameters when loading a store in ExtJs 6
在 ExtJs 4 中,可以使用 remoteFilter: false
配置 JsonStore,然后将参数发送到服务器以允许在服务器上进行筛选,例如这个:
store.load({
filters: [{property: 'state', value: 5}]
})
这已记录在案 for Extjs 4.2.2“options
:配置对象,在加载前传递到 Ext.data.Operation 对象。”
这样做的目的 是将行的子集加载到存储中(例如,用户有权访问的所有记录)并允许本地过滤(例如,对某些列进行文本搜索).
在 ExtJs 6.2 中,这不再有效。只有属性 scope
和 callback
是 documented 作为 store.load
的参数,在 ExtJs 6.2 中使用此功能会出现致命错误:filter.getFilterFn() is not a function in ext/packages/core/src/data/proxy/Server.js on line 389
我如何在 ExtJs 6.2 中重现类似的行为并只为一个 store.load
调用发送额外的参数?
您可以:
store.load({
params: {
state: 5
}
});
ExtJs 4 的严格等价物
store.load({
filters: [{property: 'state', value: 5}]
})
在 ExtJs 6 中如下:
store.load({
params: {
filter: Ext.encode([{property: 'state', value: 5}])
}
})
在 ExtJs 4 中,可以使用 remoteFilter: false
配置 JsonStore,然后将参数发送到服务器以允许在服务器上进行筛选,例如这个:
store.load({
filters: [{property: 'state', value: 5}]
})
这已记录在案 for Extjs 4.2.2“options
:配置对象,在加载前传递到 Ext.data.Operation 对象。”
这样做的目的 是将行的子集加载到存储中(例如,用户有权访问的所有记录)并允许本地过滤(例如,对某些列进行文本搜索).
在 ExtJs 6.2 中,这不再有效。只有属性 scope
和 callback
是 documented 作为 store.load
的参数,在 ExtJs 6.2 中使用此功能会出现致命错误:filter.getFilterFn() is not a function in ext/packages/core/src/data/proxy/Server.js on line 389
我如何在 ExtJs 6.2 中重现类似的行为并只为一个 store.load
调用发送额外的参数?
您可以:
store.load({
params: {
state: 5
}
});
ExtJs 4 的严格等价物
store.load({
filters: [{property: 'state', value: 5}]
})
在 ExtJs 6 中如下:
store.load({
params: {
filter: Ext.encode([{property: 'state', value: 5}])
}
})