2012-08-22 4 views
1

Store에서 값을로드하고 조건 (예 : name == Matt)으로 필터링하고 있습니다. 코드는 아래와 같습니다.Store 결과 필터링

var store = Ext.getStore('mystore'); 
store.on('load', function() { 
    store.filter({ 
     filterFn: function(rec) { 
      return Ext.Array.indexOf(arr, rec.get('name')) > -1; 
     } 
    }); 
}); 
    store.load(); 

나중에 다른보기에서 필터링 된 결과 (위 그림 참조)를 사용하고 다른 값 배열에 대해 필터링해야합니다. 어떻게해야합니까?

내 접근 방식은 레코드를 다시로드하는 것입니다 (위의 코드를 다시 붙여 넣으십시오 - 그러나 필터의 일부는 제외). 그러나 이것은 잘못된 것입니다. 어떻게 이전에 필터링 된 결과 배열의 결과를 필터링 할 수 있습니까?

답변

2

filters 속성에서 저장소로드에서 실행하고 filterOnLoad 속성을 true으로 설정하여 필터를 정의 할 수 있습니다.

새로운 필터 조건에 대해 레코드를 필터링하려면 내 코드와 같이

store.clearFilter(true); // Clears old filters 
store.filter([ 
    { 
     filterFn: function(rec) { 
       return Ext.Array.indexOf(arr, rec.get('name')) > -1; 
     } 
    } 
]); 
+0

은 무엇 hapence 난, 배열에 대해 비교하려는 경우. 코드가 작동하지만 단일 값의 경우 배열을 값의 배열과 비교할 수 있습니까? – Illep

+0

내 대답이 업데이트되었습니다. –

+0

두 번째로 필터링하기 전에 필터링하고 싶습니다. '{property : "email", value :/\. com $ /}, ' – Illep