javascript - 使用 ng-repeat 过滤列表

标签 javascript angularjs filter angularjs-ng-repeat

我有一个列表如下

$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/

相关文章:

javascript - 如何测试div是否被阻止

javascript - 如何在 javascript/vuejs 中复制对象

javascript - 如何在angularjs中以编程方式调用自定义指令

javascript - 尝试使用 AngularJs 和 c# webapi 从服务器下载 zip 文件

javascript - 浏览器是否完全加载检查

javascript - 清除 getElementById insideHTML 中的数据吗?

Kotlin 过滤器 - 未使用表达式

listview - QML ListView 过滤项目

javascript - 错误 : JSON Parse error: Property name must be a string literal when using angular translate

android - 在 Google Market 上发布一个应用程序的多个版本