【问题标题】:Creating loops and filters in AngularJS在 AngularJS 中创建循环和过滤器
【发布时间】:2015-08-26 07:41:48
【问题描述】:
我有一个基于 AngularJS 的应用程序。另外,我大量使用 lodash。
这两个库都涵盖了一些功能,例如 循环 与 _.each 和 angular.forEach 基本上做同样的事情。另一个例子是 filters:我可以在控制器中使用 lodash 过滤我的对象,或者在模板中包含一个来自 angular 的过滤器。
在选择执行这些工作的库时,最佳做法是什么?如果我因此将 lodash 用于所有这些功能,是否有任何限制或陷阱我必须考虑?
【问题讨论】:
标签:
javascript
angularjs
lodash
【解决方案1】:
使用角度过滤器的优点是您可以在视图中使用它们而无需任何管道,即<tr ng-repeat="item in items | orderBy:"name"/>
对于其他机制,例如循环和其他东西,我认为最好的方法是使用您觉得最舒服的东西。唯一需要考虑的是,如果您发现添加新库除了添加新依赖项之外并没有给您带来更多功能;摆脱这种依赖也是一个好主意。
但使用 lodash 和 underscore 等库是个好主意,因为它包含非常强大的功能,最终在大型项目中会很方便。
【解决方案2】:
它们(Angular 和 lodash)都解决了你的问题——它们遍历给定的数组。唯一的区别,恕我直言,是性能。看看Angular's forEach 和from lodash。当然,他们都需要更深入的调查,但似乎 lodash 的版本要快一些。此外,只有当性能对您很重要时,您才应该考虑它,因为差异不会很大。
关于添加 lodash - 如果“主”框架(在您的情况下为 Angular)解决了您需要的所有问题(例如迭代具有良好性能的数组) - 无需再添加一个库。添加大量库(当每个库都在少数情况下使用时)可能会使您的项目非常复杂。
因此,如果您决定将 lodash 添加到您的项目中 - 尽可能多地使用它 - 正如 @cubbuk 所写 - 这是一个非常强大的库。