我有一些关于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; }; });
输入更改(甚至复选框)时,将调用日志过滤器。
仅当文本输入更改时,如何更改它并触发日志过滤器?
这是因为$digest即使范围中的一个变量发生更改,Angular也会运行并更新所有范围属性。这称为“脏污检查”。
$digest
了解有关角度工作原理的更多信息:http : //www.sitepoint.com/understanding-angulars-apply- digest/