mhmmm .. 대답은 그리 간단하지 않습니다. todo-list app에 약간 수정을 가한 백본 구조로 연습을 해보라고 제안합니다. 그것은 훌륭한 출발점입니다. 따라서 컬렉션에 대한 훌륭한 backbone.js 메소드에 익숙해집니다.
기본 아이디어는 다음과 같습니다. visualsearch를 사용하면 "패싯"목록, 즉 키/값 객체의 배열을 얻을 수 있습니다.
var myFacets = visualSearch.searchQuery.facets();
//my facets is then something like [{"field1":"value1-a"},{"field2":"value2-c"}]
이 후에는 iterativrely _underscore lib 디렉토리에서 hinerithed 멋진 filter
방법 당신 수집을 필터링 할 myFacets
요소를 사용할 수 있습니다.
어떻게 만드시겠습니까? 당신은 여기
_.each(myFacets,function(facet){
myCollection=myCollection.filter(function(item){
return item.get(facet.get('category')) == facet.get('value');
});
});
}
당신은 값이 조항에 따라 해당 반환 backbone.js의 필터 방법을 사용에서는 lib 밑줄에 _.each의 방법을 사용할 수 있습니다. 따라서 각 단일면에 대해 한 번만 수집 물을 필터링하십시오. 그것은 javascript에게 말하는 것과 같습니다 : "이 패싯 (값)과 일치하는 컬렉션의 요소 만 반환하십시오."그리고 당신이 가진 모든 다른 패싯에 대해 반복적으로 수행합니다.
희망이 도움이됩니다.
아 .. 마지막으로, 아이디어를 엉망으로 만드는 것 :-) : Visualsearch는 backbone.js를 기반으로하며 searchQuery 객체는 백본 Collection뿐입니다. 따라서 메소드 및 속성을 사용할 수 있습니다. 기본 백본 수집. 이것이 명확하지 않은 경우이 행을 다시 읽으십시오. 이는 향후 구현을위한 핵심 포인트가 될 수 있습니다!:-)
lib/js/models 폴더의 search_jquery.js 파일을 살펴 보시기 바랍니다. 그것은 매우 흥미 롭습니다 ...
나는 내 애플 리케이션에서 성공적으로 visualsearch.js를 사용하고 또한 몇 가지 문제가 그것을 설정했다. 그러나 당신의 문제가 무엇인지 이해할 수는 없습니다. 패싯 출력을 사용하여 컬렉션을 필터링하는 방법을 모릅니다. 예제를 제공해 줄 수 있습니까? –
내가 익숙한 유일한 출력은 searchCollection.serialize() 메소드이지만, 제 목적에는 그리 유용하지 않습니다. 배열과 같은 방식으로 데이터에 액세스 할 수있는 것이 더 적합합니다. 나는 브랜드에 새로운 자바 스크립트 그래서 나는 몇 가지 기본을 놓칠 수도 ... 당신이 "당신의 컬렉션을 필터링하는 패싯 출력에 대한 자세한 정교 할 수 있을까?" – kaspnord