2015-08-05 5 views
0

У меня есть хранилище, где я хочу установить фильтр в событии перед началом.Сохранение и удаленная фильтрация

Проблема заключается в том, когда я это делаю, как этот

store.addFilter({property:'name', value: 'xxx'}); 

actuall AddFilter вызов будет отправить запрос, который является проблемой, потому что он будет стрелять снова событие beforequery.

Так что я добавить параметр supresevent к вызову функции

store.addFilter({property:'name', value: 'xxx'}, true); 

, но в этом случае запрос не имеет фильтра параметров на всех.

Я что-то упустил?

Все, что я хочу, чтобы добавить фильтр в случае beforequery и пусть он сделает запрос

ответ

2

В отеле есть имущество под названием autoFilter. Установите значение false. Это частная собственность, поэтому это не в документе.

2

Я борюсь с проблемой в подобном контексте. Я хотел установить фильтр в магазине, используя метод setFilter(). Но используя этот метод, я обнаружил, что хранилище дважды запускало событие загрузки. Один запрос включал параметры фильтра, другой - нет.

Request1:

enter image description here

Request2:

enter image description here

Такое поведение привело к неправильной информации в моем компоненте. Через некоторое время я понял, что могу обойти метод setFilter(), вызвав метод магазина filter() напрямую.

Grid-код:

... 
initComponent: function() { 
    var me = this; 

    me.callParent(arguments); 
    me.getStore().filter([ 
     { 
      property: someProperty, 
      value: someValue 
     } 
    ]); 
}, 
... 

Применение фильтра таким образом решил проблему для меня. Надеюсь, это тоже поможет вам.