ng-repeat执行多次

时间:2014-07-24 07:22:52

标签: javascript angularjs angularjs-ng-repeat angular-filters

我有点demo on 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;
    };
});

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

如何仅在文本输入发生变化时更改并触发日志过滤器?

1 个答案:

答案 0 :(得分:1)

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

详细了解角度的​​工作原理:http://www.sitepoint.com/understanding-angulars-apply-digest/