2014-10-10 4 views
0

Теперь, у меня есть магазин, который нуждается в remoteFilter: true иОбъединить удаленный фильтр и локальный фильтр

Ext.getStore("AccessRuleStore").addFilter([ 
    new Ext.util.Filter({ 
     id:'from', 
     property: 'from', 
     value : Ext.getCmp("ruleFrom").getValue() 
    }), 
    new Ext.util.Filter({ 
     id:'to', 
     property: 'to', 
     value : Ext.getCmp("ruleTo").getValue() 
    }) 
]); 

Этот addFilter автоматически запускает вызов на сервер, где from и to используются для расчета, какие правила для отправки в клиент, потому что только сервер знает, какие значения from и to соответствуют этому правилу (по какой-то причине список from и to значения не могут быть раскрыты клиенту).

С другой стороны, Правила могут быть активными или неактивными, а указывающий bool всегда передается клиенту. Теперь я хочу добавить флажок «показывать только активные правила», который фильтрует правила для (rule.get("active")===true) на стороне клиента.

Возможно ли это, и как? Всякий раз, когда я добавляю фильтры в магазин, магазин считает, что это удаленный фильтр, и просит сервер, что делать ...

ответ

0

Вы можете использовать store.filterBy, который выполняет только локальный фильтр.

E.g.

rulesStore.filterBy(function (rule) { 
    return rule.get('active'); 
}); 
Смежные вопросы