Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
454 views
in Technique[技术] by (71.8m points)

multidimensional array - Angular 2 using nested ngFor

I get this error when using the below code:

Cannot find a differ supporting object '[object Object]' of type 'object'.

Is there any way to workaround this problem when doing nested ngFor ?

import { Component,OnInit } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `
    <div id="results">
      <div *ngFor="let mem of members">
        {{mem.id}}
        <div class="card-container">
          <div *ngFor="let case of mem.cases">
            {{case.id}}
          </div>
        </div>
      </div>
    </div>
    `,
})

export class AppComponent implements OnInit {
  public members = { "members": [ 
    { "name" : "Ana", "id" : "001", 
      "cases" : [
        {"id" : "992", "casenumber" : "882"},
        {"id" : "242", "casenumber" : "344"},
      ]} , 
    { "name" : "Ina", "id" : "002", 
      "cases" : [
        {"id" : "532", "casenumber" : "234"},
        {"id" : "734", "casenumber" : "346"},
      ]} ,
    { "name" : "Ora", "id" : "003", 
      "cases" : [
        {"id" : "235", "casenumber" : "974"},
        {"id" : "458", "casenumber" : "125"},
      ]}
    ] 
  }
  ngOnInit(){
    console.log(this.members);
  }
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Your top level iteration is wrong, the array you want to iterate is inside members.members, so it should be:

  <div *ngFor="let mem of members.members"> // here
    {{mem.id}}
    <div class="card-container">
      <div *ngFor="let case of mem.cases">
        {{case.id}}
      </div>
    </div>
  </div>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...