JavaScript选择过滤器
背景:有一个表格,我可以从中选择员工。我想按姓名筛选这些员工。(我知道姓名不是筛选的好方法,这只是一个示例) 基本上,我有一个下拉列表,从中选择一个过滤器 我的声明:JavaScript选择过滤器,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,背景:有一个表格,我可以从中选择员工。我想按姓名筛选这些员工。(我知道姓名不是筛选的好方法,这只是一个示例) 基本上,我有一个下拉列表,从中选择一个过滤器 我的声明:$scope.filters=null。 我还可以选择我的过滤器$scope.chosenFilter=null 我使用以下内容检索我拥有的不同过滤器$scope.filters=retrieveFilters(info.Names) retrieveFilters如下所示: var retrieveFilters = functi
$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在GUI的某个地方显示此数据。Angular为此提供了许多强大的内置功能。看看这里的答案:从一个角度看问题。您可能还想查看以下问题和答案:。我假设您正在使用ng repeat在GUI中的某个位置显示此数据。Angular为此提供了许多强大的内置功能。看看这里的答案:从一个角度看问题。您可能还想查看此问题和答案:。是,我正在使用ng repeat显示,每当我从选项中选择特定名称时,数据都会显示良好。但是,当我单击实际的行时,没有显示任何信息。但是,如果我单击默认表中未“过滤”的行,则会显示信息。我只是无法在过滤时显示信息,因此我认为我的过滤方式不对。是的,请查看我上面链接的问题中的过滤。简言之,ng repeat具有内置过滤功能,利用它通常是一种方法。是的,我使用ng repeat进行显示,每当我从选项中选择特定名称时,数据都会显示良好。但是,当我单击实际的行时,没有显示任何信息。但是,如果我单击默认表中未“过滤”的行,则会显示信息。我只是无法在过滤时显示信息,因此我认为我的过滤方式不对。是的,请查看我上面链接的问题中的过滤。简言之,ng repeat具有内置的过滤功能,利用它通常是一种方式。