angular - 当对象数组与上一个不同时,如何迭代对象数组并更改组标签?

标签 angular angular5 angular2-ngfor

我有一个如下所示的对象数组:

[
  {group_label: Colors, label: Red, value: '1'},
  {group_label: Colors, label: Green, value: '2'},
  {group_label: Sizes, label: S, value: '3'},
  {group_label: Sizes, label: M, value: '4'},
  {group_label: Sizes, label: L, value: '5'}
]

我想用 *ngFor 迭代它并得到这个结果:

Colors:
  Red: 1
  Green: 2
Sizes:
  S: 3
  M: 4
  L: 5

我的问题是,如何在每个“部分”开始时仅显示一次 group_label 。我无法将这些对象重新格式化为更适合此任务的内容,因为它们是 FormArrays 中的 Angulars FormGroup。

最佳答案

我认为使用两个 ngFor 并制作自定义管道或具有按功能分组的函数的唯一可能方法。之后,您可以使用第二个 ngFor 写出您的键值对。

最不优雅的方法是通过索引引用前一个元素,然后检查 group_label 是否不同并为其创建一个新部分。在这种情况下,您的数组必须已经排序!

关于angular - 当对象数组与上一个不同时,如何迭代对象数组并更改组标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48029219/

相关文章:

angular - 如何以 Angular 4 推送到 FormArray([ ])

javascript - 为什么 Angular 构建创建的文件包含 'es5' 和 'es2015' 而不是 'es6'(或根本没有后缀)?

angular-material - 将动态生成的输入字段连接到 mat-autocomplete

typescript - 角度 5 项目中的错误 "ace is not defined"

angular - 如何在 Angular4/Ionic 中使用 *ngFor 时从列表中获取单击的项目详细信息

html - int中每个数字的Angular4 : How do I *ngFor,?

angular - 如何防止 Material 图标文本出现在 Material 选择中

angular - Angular 2 不透明 token 中有什么,有什么意义?

Angular 货币管道没有小数值

angular - *ngFor 在 Angular 2 中失败