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

cir*_*yus 7 angularjs angularjs-orderby

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

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

谢谢!

Glo*_*opy 10

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

优点:

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

缺点:

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

我相信还有更多的利弊,但希望这会有所帮助!