mhmmm .. нормально, ответ не так прост. Я бы предложил вам получить некоторую практику с базовой структурой, просто внеся некоторые изменения в приложение todo-list. Это отличная стартовая точка. Таким образом, вы получите знакомы с некоторыми из замечательных backbone.js методов коллекций
Основная идея заключается в следующем: С visualsearch вы можете получить список «граней», то есть массив ключа/значения объектов.
var myFacets = visualSearch.searchQuery.facets();
//my facets is then something like [{"field1":"value1-a"},{"field2":"value2-c"}]
после этого вы можете использовать myFacets
элементы для iterativrely фильтрации вам коллекцию с WONDERFUL filter
методом hinerithed из _underscore Lib.
Как это сделать? Вы можете использовать метод _.each в подчеркивании Lib
_.each(myFacets,function(facet){
myCollection=myCollection.filter(function(item){
return item.get(facet.get('category')) == facet.get('value');
});
});
}
Здесь используется метод фильтра Backbone.js, который возвращает только значения истинны в соответствии с вашей статьей. Таким образом, вы фильтруете свою коллекцию один раз для каждой отдельной грани. Это похоже на javascript: «Верните мне только элементы коллекции, которые соответствуют этим аспектам (значению)», и вы делаете это итеративно для всех разных аспектов, которые вы получили.
Надеюсь, это поможет.
Ах .. последнее, просто испортить идеи :-): Visualsearch построен на backbone.js, а объект searchQuery - это всего лишь базовая коллекция, поэтому вы можете использовать методы и свойства базовая основа. Прочтите эту строку еще раз, если это не ясно, потому что это может быть ключевым моментом для будущих реализаций!:-)
Предлагаю вам посмотреть файл search_jquery.js в папке lib/js/models. Это очень интересно ...
Я успешно использую visualsearch.js в своем приложении, и у меня также возникли проблемы, связанные с этим. Однако я не уверен, чтобы понять, в чем проблема: вы не знаете, как использовать выход граней для фильтрации вашей коллекции? Можете ли вы привести пример? –
Единственный вывод, с которым я знаком, это метод searchCollection.serialize(), но он не очень полезен для моих целей. Более подходящим было бы доступ к данным в более массивном стиле. Я совершенно новый для javascript, поэтому мне может не хватать некоторых основоположений ... Не могли бы вы подробнее рассказать о «выходе граней для фильтрации вашей коллекции»? – kaspnord