Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript选择过滤器_Javascript_Jquery_Angularjs - Fatal编程技术网

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具有内置的过滤功能,利用它通常是一种方式。