2016-11-17 3 views
7

Es ist ein sehr merkwürdiges Problem aufgetreten, bei dem sich meine Anwendung in einem sehr speziellen Benutzerfall schlecht verhält. Ich habe ein Portal, in dem Benutzer Fragen und Antworten hinzufügen und dann bearbeiten können. In diesem Fall, wenn ich eine Menge (q + a) entferne und dann versuche, sie hinzuzufügen, wird das Modell aktualisiert, aber meine Ansicht nimmt Werte von Platzhaltern und aktualisiert sich selbst. Hier spleiße und drücke ich nur Werte in einem Array und rendere mit ngFor. Das letzte Element ist ein Dummy und dient zur Eingabe von Werten, die hochgedrückt werden.ng-reflect-model zeigt den korrekten Wert, spiegelt sich aber nicht in der Eingabe wider

Anfügen eines Screenshots, wenn es Sinn macht.

Sie können sehen, dass das ng-reflect-Modell für die Textbox die richtige Frage anzeigt, aber das Element selbst den Platzhaltertext anzeigt.

+0

bitte fügen Sie einen Code –

+0

hinzu Gelöst es durch Hinzufügen von TrackBy in ngFor –

+0

fügen Sie bitte Code, der Ihr Problem gelöst, damit andere Lösung erhalten können. Danke –

Antwort

8

Anscheinend ist das Problem verursacht wurde, weil Angular nicht in der Lage war richtig, die Elemente meiner Array zu verfolgen. Das habe ich sehr schwer herausgefunden. Also nur ein TrackBy-Attribut zu meinem ngFor hinzufügen, konnte ich dies beheben.

hinzugefügt dies meine Komponente:

customTrackBy(index: number, obj: any): any { 
    return index; 
} 

und dann in der Vorlage:

<div class="margin-bottom-15" 
    *ngFor="let assessment of language.assessments; trackBy:customTrackBy"> 

Also im Grunde ich bin Winkel frage nach Index meiner Elemente im Array zu verfolgen. Es hat das Problem gelöst.

Hier Beurteilung ist das Modell für jeden der Frage-Antwort-Set.

+0

Es ist wahrscheinlich einer der nützlichsten Beiträge, die ich jemals hier gelesen habe. Ich denke, das ist der seltene Fall, da Sie der Rechtschreibung nicht mehr Beachtung schenken müssen, weil Ihre Inhalte dies kompensieren. Obwohl du kannst :-) – peterh

+0

haha ​​.. danke für deine Bearbeitung Peter. –

Verwandte Themen