Ich habe stieß auf sehr interessante Frage. Ich habe folgende HTML:Warum verliert ngFor die Daten, wenn ngIf ändert?
<div *ngIf="flag" *ngFor="#obj of myArr.gear">{{obj | json}}</div>
Und in der Komponente, die ich ändern, die die Flagge alle 1 sec:
setInterval(()=>{
this.flag = !this.flag;
console.log(this.myArr);
},1000)
Nun, wie Sie here sehen können, gibt es zwei interessante Dinge, die passieren, wenn ich das ändern Flagge:
- Wenn ich Flagge zum ersten Mal zu ändern, scheint ngFor erneut aufgerufen werden, das Hinzufügen
null
zu dem hTML-Code. - Wenn das Flag das nächste Mal geschaltet wird, ändert sich der HTML-Code nur in
null
- es scheint, dass angular den Verweis aufmyArr
nicht mehr erkennt.
Haben Sie irgendwelche Ideen, warum ist das passiert?
Pixelbits, danke für deine Antwort. Meine Frage betrifft jedoch den Ursprung des beschriebenen Verhaltens. – uksz