2017-02-06 6 views
0

Пожалуйста, см. Ниже код, который я использую для фильтрации данных.как фильтровать данные из хранилища в extJS?

listeners: { 
    keyup: function (e, t, eOpts) { 
     var text = e.getValue(); 
     var s = Ext.getStore('TempSensorDetailsStore'); 
     s.clearFilter(); 
     if (text) { 
      s.filterBy(function (rec) { 
       var str = (rec.get('vehicleNo')).toLowerCase(); 
       var res = str.indexOf(text.toLowerCase()); 

       if (res == 0) { 
        return true; 
       } 
      }); 
     } else { 
      s.clearFilter(); 
     } 
    } 
} 

Приведенный выше код получить фильтровать данные, но не согласно моим ожиданиям,

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

Для примера. Автомобиль No.Abc-37046, и если поиск пользователей 37046 затем также возвращает транспортное средство

+0

Данный пример - ваше требование или текущее поведение? –

+0

'indexOf' дает вам первый индекс (else -1), который появляется в строке. Вы явно проверяете, что первый индекс находится в начале строки. –

+0

Итак, что мне нужно сделать в моем коде? –

ответ

0

я получил решение,

Там просто нужно изменить код

if (res >- 1) 

Вместо того

if (res == 0)