我的范围内有两个阵列:员工和汽车。每个员工都有一个cardd,与汽车阵列中的汽车相匹配。
员工看起来像
[{'id': 1, 'name': 'John', 'carId': 1}]
像汽车
[{'id': 1, 'color': 'red'}]
现在我有一个ng-repeat,想直接用过滤器输出汽车的颜色:
{{ employee.carId | selectFromCars:$scope.cars }}
我不知道如何访问过滤器内的汽车阵列。这是否可能,或者我应该在装载后将汽车注入员工,然后只使用以下?
{{ employee.car.color }}
答案 0 :(得分:1)
您可以制作自己的自定义过滤器,只需将其添加到控制器的末尾,如下所示:
.filter('empCarFilter', function() {
return function(carId, cars) {
// you can access $scope.cars here, for example...
angular.forEach(cars,function(value){
if (value.id === carId) {
return value.color;
}
// etc...etc...
})
}
上述方法假设您将employee.carId传递给过滤器。但是,不确定这对你有多大帮助,但你也可以将整个对象传递给过滤器而不只是一个键:
{{ employee | empCarFilter }}
这也是自定义过滤器的一个很好的参考: https://scotch.io/tutorials/building-custom-angularjs-filters