javascript - 如何使用 Angular 6 ngFor 将子元素显示为父元素

标签 javascript html angular

我有一个 JSON 数据集,它本身就是一个数组,每个对象可能包含子数组。

我需要将内部嵌套数组中的元素显示为父数组的元素,以便使用 Angular NgFor 显示。

以下是我的输入格式:

[{
  'id': 1,
  'title': 'One',
  'data': [{
    'id': 200,
    'dataset': [{
        'id': 300,
        'name': 'Duke',
      },
      {
        'id': 301,
        'name': 'Bajaj'
      }
    ]
  }]
}]

我需要显示为:

1  One (outer element)
   300   Duke (innermost element)
   301   Bajaj

最佳答案

您需要迭代数据。使用*ngFor。对于第三级,您可能需要另一个嵌套的 *ngFor 因为 data 又是另一个数组中的数组

在 html 文件中

<ul *ngFor="let item of data; let i = index" [attr.data-index]="i">
  <li>{{item.title}}</li>
  <li *ngFor="let elem of item.data; let x = index2">

    <div *ngFor="let name of elem.dataset; let y = index3">
      <span>{{name.id}}</span><span>{{name.name}}</span>
    </div>


  </li>
</ul>

在组件文件中

export class AppComponent implements OnInit {
  name = 'Angular';
  data;

  ngOnInit() {
    this.data = [{
      'id': 1,
      'title': 'One',
      'data': [{
        'id': 200,
        'dataset': [{
            'id': 300,
            'name': 'Duke',
          },
          {
            'id': 301,
            'name': 'Bajaj'
          }
        ]
      }]
    }]
  }
}

这是demo

关于javascript - 如何使用 Angular 6 ngFor 将子元素显示为父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55644627/

相关文章:

javascript - JS : Fizz Buzz Sequence Quiz (Display last element in series as Integer in case it equals to Fizz, 嗡嗡声或嘶嘶声)

javascript - 正则表达式 使用 OR ( | ) 时非捕获组

html - li 悬停效果,里面有 img 和纯文本

HTML <img> 标签不起作用

angularjs - Angular 2 订阅 http 服务更改?直接方法调用返回过时的结果

javascript - 解决 DOM 事件上的 javascript promise

javascript - 动画实时图库

html - 使 flex div 的宽度适应内容,但将 Flex 元素放在单独的行中

Angular 7 PWA 网络存储选择

angular - 为什么我不能构建引用内部 Angular 库的 Angular 应用程序?