ng-repeat

时间:2017-03-28 11:51:36

标签: angularjs-ng-repeat angular-filters

我需要帮助过滤ng-repeat中的数据。我试过做一些事情,但我找不到适用于我的解决方案。我需要这样的事情:

sensor in sensors | filter: { group: group.id, (name: search || description: search) }

搜索是ng-model(文本输入),group.idng-repeat中生成的组的ID(我有两个嵌套的ng-repeat)。我试过做我的过滤器:

$scope.search = '';
    $scope.searchFilter = function() {
        return function (p) {
            if ($scope.search!='') {
                for (var i in p) {
                    console.log("p.name: "+p.name+", search: "+$scope.search);
                    if (p.name == $scope.search || p.description == $scope.search) {
                        return p;
                    }
                }
            } else {
                return p;
            }

        }
    }

几乎可以工作。它会过滤我的数据,但前提是我写的名称正确。例如,我想找到“引擎”。如果我开始写“en”没有数据,但如果我写“引擎”它将显示正确的数据。所以我也需要努力。我希望你明白我想做什么。

1 个答案:

答案 0 :(得分:2)

我找到了解决方案!

sensor in sensors  filter: { group: group.id } | filter: searchFilter()

而且:

$scope.search = '';
$scope.searchFilter = function() {
    return function (p) {
        if ($scope.search!='') {
            for (var i in p) {
                var re = new RegExp($scope.search, 'i'); // This I've add
                if (p.name.match(re) || p.description.match(re) ) { // This I've change
                    return true;
                }
            }
        } else {
            return true;
        }

    }
}