在 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.2options:配置对象,在加载前传递到 Ext.data.Operation 对象。”

这样做的目的 是将行的子集加载到存储中(例如,用户有权访问的所有记录)并允许本地过滤(例如,对某些列进行文本搜索).

在 ExtJs 6.2 中,这不再有效。只有属性 scopecallbackdocumented 作为 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}])
    } 
})