angularjs:使用带有服务的自定义过滤器

时间:2013-04-23 09:11:05

标签: angularjs

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

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

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

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

1 个答案:

答案 0 :(得分:3)

过滤器在这种情况下执行非常糟糕,因为过滤器是作为每个$ digest循环的一部分执行的。实际上,这意味着给定的过滤器每个$ digest循环至少执行两次,这样你就会有大量的请求到后端。

此过滤器无法真正可靠地用于从服务器获取数据,因为过滤器在后端调用是异步时同步执行。

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