背景:我有一张表可以选择员工。我想通过名称来过滤这些员工(我知道名称不是一种好的过滤方式,这仅仅是一个例子) 基本上我有一个下拉式选择过滤器。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具有内置过滤功能,并且使用它通常是最佳选择。 –