在 ExtJs 6 中加载商店时如何发送自定义过滤器参数

Lor*_*yer 2 extjs upgrade filter extjs4 extjs6

在 ExtJs 4 中,可以配置一个 JsonStore remoteFilter: false,然后将参数发送到服务器,允许仍然在服务器上进行过滤,如下所示:

store.load({
    filters: [{property: 'state', value: 5}]
})
Run Code Online (Sandbox Code Playgroud)

这是记录在案的ExtJS的4.2.2options:配置对象,传递到装货前的Ext.data.Operation对象。”

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

在 ExtJs 6.2 中,这不再有效。只有属性scopecallback记录为 的参数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调用发送额外的参数?

Lor*_*yer 5

ExtJs 4 的严格等价物

store.load({
    filters: [{property: 'state', value: 5}]
})
Run Code Online (Sandbox Code Playgroud)

ExtJs 6 中的内容如下:

store.load({
    params: {
        filter: Ext.encode([{property: 'state', value: 5}])
    } 
})
Run Code Online (Sandbox Code Playgroud)