我对角度几乎是新的,但我觉得这有点疯狂。

我有多个集合在一个控制器范围内通过ng-feater显示。每个列表都有一个输入字段来执行一个简单的查询。我正在使用我的代码中的各种过滤器来玩,我最终在我的过滤器函数中放置了一个console.log。我意识到每次调用一个列表的过滤函数时,都会调用范围中的所有列表。此外,它每次都会调用两次过滤器函数。因此,使用3个集合,过滤其中一个列表将调用过滤器函数6次。

我想也许这只是我的自定义过滤器,所以我在默认过滤功能上尝试过。相同的故事。这是我的代码:

https://dl.dropbox.com/u/905197/ Angular-Filter-test.html

转到控制台,然后查看自己:/

我在这里做错了什么?这似乎是这么简单的事情,但它做了这么多的工作。

有帮助吗?

解决方案

这是正常的,AngularJS使用'脏检查'方法,因此需要调用所有过滤器以查看是否存在任何更改。在此之后,它检测到一个变量的更改(您键入的那个),然后它再次重新执行所有过滤器以检测它是否具有其他更改。

查看这个问题

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top