angular中使用filter时,无论页面做什么操作(应该是触发digest),filter都会触发执行
<div ng-controller="myCtrl">
<ul>
<li ng-repeat="item in items | filter : ''" ng-bind="item"></li>
</ul>
<button type="button" class="btn btn-primary">按钮</button>
</div>
app.controller('myCtrl', [
'$scope',
function ($scope) {
$scope.items = ['1', '2', '3'];
}
]);
在angular源码filterFilter方法中打印:
function filterFilter() {
return function(array, expression, comparator) {
console.log(array);
if (!isArray(array)) return array;
// ...
};
}
执行效果如下:
开始时,执行两次filter,然后每次点击按钮就会执行一次filter。
请问怎么解决这个问题?
慕少森
相关分类