我有一个列表如下
$scope.arrayList = [
{"name": "test1", "age":2},
{"name": "test2", "age":4},
{"name": "test3", "age":2},
{"name": "test1", "age":4}
]
最初,当程序运行时,应向用户显示整个列表。然后通过另一个下拉菜单,用户应该能够选择年龄。然后根据所选年龄,应过滤列表并仅显示相关数据。请找到以下代码
HTML
<div ng-repeat="array in arrayList | filter:filterByAge">{{array}}</div>
<select ng-model="selAge">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
Controller
$scope.filterByAge = function(selectedAgeVal)
{
if($scope.arrayList.age ==selectedAgeVal)
{
$scope.arrayList;
return true;
}
else
{
return false;
}
}
但是这段代码无法正常工作。 arrayList 的初始加载甚至无法正常工作。有人能帮我弄清楚如何在 ng-repeat 中进行过滤吗?提前致谢
最佳答案
您的自定义过滤器函数应该是这样的:
$scope.filterByAge = function(selectedAgeVal) {
return selectedAgeVal.age == $scope.selAge;
}
或者你可以这样做:
<div ng-repeat="array in arrayList | filter: {age: selAge}">{{array}}</div>
关于javascript - 使用 ng-repeat 过滤列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58279073/