angular - *ngFor visas inte


Hej, jag vet att den här frågan kommer upp ofta, men de vanliga lösningarna fungerar inte.

Det här är min kod

export class CourseReviewFormComponent implements OnInit { 
 form: FormGroup
 questionnaire: string[] = [];
 currentQuestionsValue: string[] = [];

 constructor(private serverData: ServerService) { }
  ngOnInit() {
    this.onGetForm();   
   }

 onGetForm() {
   this.serverData.getData('questionnaire/Student Course Review')
     .subscribe(
        (response: Response) => {
         this.questionnaire = response.json();
         let key = Object.keys(this.questionnaire);
         for (let i = 0; i < key.length; i++) {
           this.currentQuestionsValue.push(this.questionnaire[key[i]].items)
         }
         console.log('current Questions Value', this.currentQuestionsValue);
         },
          (error) => console.log('Form Error', error)
         )
      }
    }

min mall

 <form>
  <div *ngFor="let data of currentQuestionsValue">
    <strong> {{ data.sno }}). </strong>
    <span>{{ data.question}}</span>
    <div>
      <label *ngFor="let op of data.options; let i = index">
        <input type="radio" name="option" [value]="i">
        <span>{{ op }}</span>
      </label>
    </div>
  </div>
</form>

Men ngFor visar inga data:

I console.log('current Value', this.currentValue); fungerar bra.

Men när jag kör ngFor-loop i DOM fungerar den inte.

Svar #1

Du behöver hämta det första objektet i en array och iterera över dess värde som också är en array.

I ServerService skulle jag lägga till mellanliggande steg för att transformera ett observerbart objekt så här:

.map(data => data.json())
.map(json => json[0])

Svar #2

Letar du efter detta.?

let data of currentQuestionsValue[0]