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]
