0

我可以找到很多关于如何创建自定义过滤器并使用它来过滤一组数据的示例。但是,我找不到任何关于如何使用过滤器通过后端服务进行过滤的示例。例如:

<input type="text" ng-model="query" />

<table id="searchTextResults">    
  <tr ng-repeat="item in items | filter:query">
       results go here
  </tr>
</table>

而不是过滤现有项目,输入输入应该调用服务以从服务器获取结果。在这种情况下使用过滤器是否有意义?还是我应该将逻辑保留在控制器中?

4

1 回答 1

3

在这种情况下,过滤器会表现得很糟糕,因为过滤器是作为每个 $digest 循环的一部分执行的。在实践中,这意味着给定的过滤器将在每个 $digest 循环中至少执行两次,因此您将对后端有大量请求。

除此之外,过滤器不能真正可靠地用于从服务器获取数据,因为过滤器是同步执行的,而后端调用是异步的。

简而言之 - 远离触发后端调用的过滤器。

于 2013-04-23T10:03:13.027 回答