2017-02-03 3 views
2

В ExtJs 4 можно было настроить JsonStore с помощью remoteFilter: false, а затем отправить параметры на сервер, которые позволяют по-прежнему фильтровать на сервере, например :Как отправить пользовательские параметры фильтра при загрузке магазина в ExtJs 6

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 вызова?

ответ

2

Вы можете:

store.load({ 
    params: { 
     state: 5 
    } 
}); 
+0

Спасибо, я дам ему попробовать. –

+0

Конечно. Я использовал это много раз в своем коде. –

2

Строгое эквивалент ExtJs 4-х

store.load({ 
    filters: [{property: 'state', value: 5}] 
}) 

следующая в ExtJS 6:

store.load({ 
    params: { 
     filter: Ext.encode([{property: 'state', value: 5}]) 
    } 
}) 
Смежные вопросы