Мне нужно отфильтровать список или записи в соответствии с выбором в dropdownlists. У меня есть три выпадающих списка, которые должны фильтровать записи в ответ на взаимодействие друг с другом. i.e выбор значения в одном раскрывающемся списке должен фильтровать записи, сделанные другими значениями выпадающего списка.Фильтрация записей в соответствии с выпадающим списком
var filterAndLimitResults = function (cursor) {
if (!cursor) {
return [];
}
var raw = cursor.fetch();
var currentChosenCategory = chosenCategory.get();
var currentChosenCity = chosenCity.get();
var currentJtype = chosenJtype.get();
console.log(currentChosenCategory);
console.log(currentChosenCity);
// filter category
var filtered = [];
if (!currentChosenCategory || currentChosenCategory == "" && !currentChosenCity || currentChosenCity == "" && !currentJtype || currentJtype == "")
{
filtered = raw;
// console.log(filtered);
}
else {
filtered = _.filter(raw, function (item) {
if(currentChosenCategory){
return item.ccategory === currentChosenCategory ;
}
if(currentChosenCity){
return item.city === currentChosenCity ;
console.log(item.city === currentChosenCity);
}
});
}
var currentLimit =limit.get();
//enforce the limit
if (currentLimit) {
filtered = _.first(filtered, currentLimit);
}
return filtered;
};
приведенный выше код делает и фильтрации выпадающие и ограничить количество записей, таким образом, чтобы дать бесконечную прокрутку.
Редактировать для текста на основе поисковой
Вот мой eventmap для Seach коробки
"keyup #search-title":function(e,t){
if(e.which === 27){
searchTitle.set("");
}
else {
var text = $(e.target.val);
searchTitle.set(text)
console.log(searchTitle.set(text));
}
}
Это то, что IAM делает в filteredAndLimitResults
if(!(!currentSearchTitle || currentSearchTitle == "")) {
filtered = _.filter(filtered, function (item) {
return item.title === currentSearchTitle ;
console.log(item.title === currentSearchTitle);
});
}
, когда я печатаю что-то в в поле поиска. все записи исчезают, и когда в прессе esc
он возвращается, как это было. в console.log
я вижу, что каждый раз нажимаю клавишу, она возвращает коллекцию.
это опечатка? 'if! (! currentChosenCity || currentChosenCity ==" ")' '' '' 'бросает ошибку. поэтому я сделал это так: if (! (! currentChosenCity || currentChosenCity == "")). и другое: я не могу видеть записи сейчас. они не отображаются – syed
Вы правы, я забыл скобки, поэтому это должно быть 'if (! (! currentChosenCity || currentChosenCity ==" "))'. Попробуйте добавить 'console.log (filter);' после каждого фильтра. – Billybobbonnet
его работая теперь спасибо. Еще одна вещь, которую мне нужно добавить для всех городов, все категории для этого в dropdown.so, которые должны быть похожими на все ciategories в Нью-Йорке или на маркетинг в Сиэтле и подобных. как я могу это сделать в этом? – syed