1
我需要根據下拉列表中的選擇過濾列表或記錄。 我有三個下拉菜單,需要相互協作來動態地過濾記錄。即一個下拉列表中的值選擇應篩選受其他下拉列表值影響的記錄。根據下拉列表過濾記錄
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;
};
上面的代碼是同時進行過濾下拉和限制記錄的數量,以使無限滾動。
編輯基於文本的搜索
這裏是我的SEACH箱eventmap
"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
我可以看到,每次我按下一個鍵它將返回集合。
這是一個錯字? '如果!(!currentChosenCity || currentChosenCity ==「」)''!'拋出錯誤。所以我做了這樣的'如果(!(!currentChosenCity || currentChosenCity ==「」))''。另外一件事是我現在看不到記錄。他們沒有被顯示 – syed
你是對的,我忘了括號,所以它應該是'if(!(!currentChosenCity || currentChosenCity ==「」))''。嘗試在每個過濾器之後添加一個'console.log(過濾);'。 – Billybobbonnet
它的工作現在thanks.Just另一件事我需要添加一個所有城市,在dropdown.so所有類別應該像在紐約所有ciategories或在西雅圖和喜歡營銷。我該如何做到這一點? – syed