背景:我有一張表可以選擇員工。我想通過名稱來過濾這些員工(我知道名稱不是一種好的過濾方式,這僅僅是一個例子) 基本上我有一個下拉式選擇過濾器。JavaScript選擇過濾器
我的聲明:$scope.filters = null;
。 我也有這個減速選擇我的過濾器$scope.chosenFilter= null;
。
我使用以下方法來獲取不同的過濾器我已經$scope.filters = retrieveFilters(info.Names);
retrieveFilters如下所示:
var retrieveFilters = function(rows) {
var filterWrapper = document.querySelector(".filterWrapper");
var datasetOptions = [];
$scope.predicate = 'Name';
if (rows) {
//Add Default option
datasetOptions.push({
name: $scope.data.Fnames.defaultFilterOptionLabel,
value: ''
});
$scope.chosenFilter = datasetOptions[0];
_.forEach(rows, function(ele) {
datasetOptions.push({
name: ele,
value: ele
});
});
} else {
filterWrapper.style.display = "none";
}
return datasetOptions;
};
我使用以下方法來選擇我的過濾器:
$scope.$watch('chosenFilter', function() {
var filterSearchInput = document.querySelector(".filterWrapper input");
ng.element(filterSearchInput).triggerHandler('input');
});
一切很好,顯示器在第一次加載時工作,因爲我已經設置了默認值
//Add Default option
datasetOptions.push({
name: $scope.data.Fnames.defaultFilterOptionLabel,
value: ''
});
從默認表中,每當我點擊一個員工姓名hes詳細信息顯示。然而,無論何時我篩選並點擊員工姓名,都不會顯示任何內容。每當我點擊默認表中的特定員工姓名,然後以相同名稱過濾時,信息也會顯示出來,因爲我每次都會緩存它。
是的我正在使用ng-repeat進行顯示,並且只要我從選項中選擇特定名稱,數據就會顯示正常。但是,當我點擊沒有信息顯示的實際行。但是,如果我點擊默認表中的那一行,不是「過濾」,那麼信息就會顯示。我只是無法獲取信息,無論何時被過濾,所以我認爲我在做錯誤的過濾方式。 –
是的,請查看我鏈接到上面的問題中的過濾。簡而言之,ng-repeat具有內置過濾功能,並且使用它通常是最佳選擇。 –