【发布时间】:2017-10-26 17:56:25
【问题描述】:
我已经编写了以下自定义过滤器
HTML 代码是:
<!DOCTYPE>
<html>
<head>
</head>
<body>
<div ng-app="myApp">
<div ng-controller="myCont">
<div ng-repeat="b in ar2">
{{b}}
</div>
{{a}}
{{c | myFilt}}
<div ng-repeat="x in arr3">
{{x|myFilt}}
</div>
</div>
</div>
<script src="jquery-3.0.0.js"></script>
<script src="angular.js"></script>
<script src="angular_try.js"></script>
</body>
</html>
而 Angular 的 js 代码是:
var myApp = angular.module("myApp",[])
myApp.controller("myCont",["$scope","$filter",function($scope,$filter){
$scope.a ="pro";
$scope.arr = ["abc","bcd","cdb"];
$scope.arr3 = [100,200,300];
$scope.ar2=[];
$scope.c = 10;
for(i in $scope.arr)
{
$scope.ar2[i] = $filter("uppercase")($scope.arr[i]);
}
}])
myApp.filter("myFilt",function(){
return function(input){
return input + 20;
}
})
我编写了上面的自定义过滤器来理解角度过滤器。我们可以看到这个客户过滤器既适用于数字,也适用于数组。由于过滤器中返回函数的“输入”参数同时采用。 但是我在采访中被问到过滤功能是否也可以将对象作为输入。我在这里很困惑,无法回答。 我试图在网上搜索,但没有得到任何好的答案。 有人可以帮我理解吗?
【问题讨论】:
-
您没有在任何地方将数组传递给您的过滤器。您正在将
arr3的各个元素传递给您的过滤器。无论如何,您可以传递完整的数组(尽管输出将与您当前得到的不同)甚至是一个对象。试一试,看看你会得到什么。 -
我在 ng-repeat 中传递过滤器“myFilt”从 ng-repeat 中获取每个数组元素并将它们存储在另一个数组中
标签: angularjs html angularjs-filter