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