我想了解如何通过 ng-repeat 指令在 AngularDart 中执行链式过滤器/格式化程序。
谁能以简洁明了的方式解释它是如何工作的?
参考的教程没有提供足够的细节来完全掌握 AngularDart 链式过滤器的执行工作原理。以下是我通过查看文档和查看部分 AngularDart 源代码所理解的内容。
参考链接: http: //runnable.com/UvL5t92j1pVCAAAQ/angular-dart-tutorial-chapter-05 github原帖:https ://github.com/angular/angular.dart.tutorial/issues/74
** 用于评估 ng-repeat 中的过滤器的假定执行链**
格式化程序/过滤器可以访问中继器内的列表,例如 ng-repeat
recipeList 通过 ng-repeat 的作用域提供给 cf
cf=categoryfilter(list, map) -->分类列表
fltr=filter (list, nameFilterString)--> filteredList, name
ordBy=orderBy(list, name)--> orderdList
- 首先获取用户选择的类别,将列表传递给下一个过滤器
- 过滤依赖于所选类别的输入文本
- 根据名称的默认升序对上面 2 中过滤的列表进行排序
- 为列表中的每个项目创建一个 html 跨度
Html View(从右到左:1.、2.、3.、4.如下图所示):
< 4.ng-repeat=ordererdList 中的配方 | <==3.ordBy(fltr) | <== 2.fltr(cf, nameFilterstring) | <== 1. cf(recipeList , map < category, isChecked > ) >
我想知道 angularDart 中继器(ng-repeat)中的列表(recipeList)如何将列表传递给每个连续的链式过滤器,并确认过滤器的顺序是否重要(我相信它们确实如此)。我上面的理解正确吗?
< li class="pointer"
ng-repeat="recipe in ctrl.recipes | orderBy:'name' | filter:{name:ctrl.nameFilterString} | categoryfilter:ctrl.categoryFilterMap" >
.... repeated dom elements omitted here for clarity
< /li >