<p class="row" ng-repeat = "r in rArr">
<p class="col" >{{r.date | date:'HH:mm'}} </p> <p class="col" ng-repeat="item in timeArray | filter : func(r.row,item.row)">{{item.row}}</p>
</p>
$scope.func = function(r1,r2) {
console.log(r1);
console.log(r2);
return r1 == r2;
}
问题:前端传的item是undefined的 即r2是undefined的 这是为何呢?
filter对字符串的处理是包含就返回true 我想做的是2个字符串相等才返回true。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
根据angularjs官网介绍,filter后面如果是function,传入的参数应该是:
所以,你直接传入
func即可,签名形式是固定的。另外,对于复杂对象,你还要注意比较操作是否合理,一般情况可能是浅比较,即比较的是引用值,而不是对象内容。比如我自己实现了一个demo:
当然,如果你想在模板中指定比较的对象,可以这样:
源代码参考:https://jsfiddle.net/flybywind/4tf73mzj/
改成
<p class="col" ng-repeat="item in timeArray | filter: {row: r.row} : true">{{item.row}}</p>看一下官方文档就可以https://docs.angularjs.org/api/ng/filter/filter(自备梯子)