我对angular非常陌生,但是我觉得这有点疯狂。
我在一个控制器作用域中通过ng- repeat显示了多个集合。每个列表都有一个输入字段,可以执行简单的查询。我在代码中使用各种过滤器,最后我在过滤器函数中添加了console.log。我意识到,每次我的过滤器函数被一个列表调用时,作用域中的所有列表都被调用。此外,它每次都调用两次filter函数。因此,对于3个集合,过滤列表之一将调用6次过滤功能。
我以为可能只是我的自定义过滤器,所以我在默认过滤器功能上进行了尝试。相同的故事。这是我的代码:
https://dl.dropbox.com/u/905197/angular-filter- test.html
转到控制台并亲自查看:/
我在这里做错了什么?这看起来很简单,但是却做了很多工作。
这是正常现象,angularjs使用“脏检查”方法,因此需要调用所有过滤器以查看是否存在任何更改。此后,它将检测到您对一个变量(您键入的变量)进行了更改,然后再次重新执行所有过滤器以检测其是否有其他更改。
看到这个问题的第一个答案