为什么优势或过滤和订单?

时间:2012-08-01 14:51:13

标签: angularjs angularjs-orderby

似乎AngularJS非常强调在您的视图中使用过滤器和其他ng指令来过滤和排序数据,而不是在模型中手动执行。有没有任何理由,即它更快,缓存还是什么?

我想显示一个列表,例如,但我也想访问排序列表以用于与视图无关的其他目的。如果列表直接在模型中排序,这很容易,所以我试图理解这样做是否存在缺陷。

谢谢!

1 个答案:

答案 0 :(得分:10)

如果对你有意义的话,我没有看到对数据进行预排序有什么问题,但是这里有一些使用Angular过滤器的优点和缺点。

<强>优点:

  • 清晰分离视图和模型。模型/控制器不需要知道或包含与数据显示/排序/过滤方式相关的代码
  • 由于过滤器在模型更改时执行,orderBy filter可以在项目通过UI添加到数组时自动排序
  • 过滤器可用于格式化数据以显示(例如currency filter)以及修改DOM添加/删除项(例如filter filter)而无需修改基础模型数据
  • 促进重复使用常用的内置或custom过滤功能

<强>缺点:

  • 编写得不好的过滤功能会导致性能问题。你可以在AngularJS Batarang video从4:30开始看到一个有意设的例子。任何代码(不仅仅是一个过滤器)的编写都很糟糕,但最初并不清楚调用过滤器的频率。
  • 稍微有些混淆,因为有些过滤器会对单个数字/字符串(货币过滤器)起作用,而某些过滤器会对数组(orderBy过滤器)起作用
  • 传递参​​数和过滤器链接的语法也可能有点令人困惑

我确信还有更多优点/缺点,但希望这会有所帮助!

相关问题