【发布时间】:2015-12-02 21:07:00
【问题描述】:
亲爱的,我正在经历question,其中接受的答案建议使用带有 ng-repeat 的过滤器,它基本上使用 lodash 的 chunk 函数和 memoize 函数。作者描述使用memoize的原因如下
许多人更喜欢在视图中使用过滤器来完成此操作。这是可能的,但只能用于显示目的!如果您在此过滤视图中添加输入,则会导致可以解决但不美观或不可靠的问题。
这个过滤器的问题是它每个返回新的嵌套数组 time.Angular 正在观察过滤器的返回值。
第一个 过滤器运行时,Angular 知道该值,然后再次运行它以 确保完成更改。如果两个值相同,则循环为 结束了。
如果没有,过滤器将一次又一次地触发,直到它们成为 相同,或者 Angular 实现并且正在发生无限摘要循环并且 关闭。
因为以前没有新的嵌套数组/对象 由 Angular 跟踪,它总是看到返回值不同于 以前的。
要修复这些“不稳定”过滤器,您必须将过滤器包装在
memoize函数中。
lodash有一个memoize函数,而最新版本的lodash还包括一个chunk函数,所以我们可以非常简单地使用npm模块创建这个过滤器并使用browserify编译脚本或webpack.
谁能帮助我了解 memoize 在这里如何使用 ng-repeat 和 filter 运行?
【问题讨论】:
-
那么问题是什么?
-
谁能帮助我了解 memoize 在这里如何使用 ng-repeat 和 filter 发挥作用?
标签: javascript angularjs lodash