我需要帮助过滤ng-repeat中的数据。我试过做一些事情,但我找不到适用于我的解决方案。我需要这样的事情:
sensor in sensors | filter: { group: group.id, (name: search || description: search) }
搜索是ng-model
(文本输入),group.id
是ng-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”没有数据,但如果我写“引擎”它将显示正确的数据。所以我也需要努力。我希望你明白我想做什么。
答案 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;
}
}
}