一尘不染

ng-repeat执行多次

angularjs

我有一些关于jsfiddle的演示

HTML:

<input type="checkbox" id="chkUsr{{usr.Id}}" ng-model="usr.Checked">
{{usr.Name}} : {{usr.Checked}}
<input type="text" ng-model="research"/>
<div ng-repeat="entity in entities | filter:research | log">
Hello {{entity.id}}!

JavaScript:

app.filter('log', function() {
    return function(items) {
        console.log('yo');
        return items;
    };
});

输入更改(甚至复选框)时,将调用日志过滤器。

仅当文本输入更改时,如何更改它并触发日志过滤器?


阅读 212

收藏
2020-07-04

共1个答案

一尘不染

这是因为$digest即使范围中的一个变量发生更改,Angular也会运行并更新所有范围属性。这称为“脏污检查”。

了解有关角度工作原理的更多信息:http : //www.sitepoint.com/understanding-angulars-apply-
digest/

2020-07-04