2017-08-31 4 views
-2

Ich habe ein Kombinationsfeld 2, das aktualisiert, wenn die Werte eines anderen Kombinationsfelds 1 ausgewählt werden. Dazu habe ich eine onChange() Funktion verwendet. Aber wenn ich meine Objekte speichere und die Seite neu lade, werden nur die Werte von Kombinationsfeld 1 angezeigt. Ich denke das liegt daran, dass die Werte von Kombinationsfeld 1 in die Funktion onInit() geladen werden, während das Kombinationsfeld 2 darauf wartet, dass die Methode onChange() aufgerufen wird.
Gibt es eine Möglichkeit, die gespeicherten Werte auf Kombinationsfeld 2 zu laden? Hier ist mein Code (nur der relevante Teil, wenn anderer Code benötigt wird, werde ich es zur Verfügung stellen).Angular - laden Sie Werte auf Seite neu laden

Ansicht

<div> 
     <select (change)="onChange($event.target.value)" [ngModel]="model.mycombo1" name="mycombo1" id="mycombo1"> 
      <option disabled hidden [value]="unusedValue">Scegli...</option> 
      <option *ngFor="let d of combo1" [value]="d.id">{{d.descrizione}}</option> 
     </select> 
     </div> 
     <div> 
     <select [ngModel]="model.mycombo2" name="mycombo2" id="mycombo2"> 
       <option disabled hidden [value]="unusedValue">Scegli...</option> 
       <option *ngFor="let d of combo2" [value]="d.id">{{d.descrizione}}</option> 
      </select> 
     </div> 

Komponente

export class InsertComponent implements OnInit { 

    combo1: Combo[]; 
    combo2: Combo[]; 

    constructor(private comboSrv: ComboService) { } 

    ngOnInit() { 

    this.comboSrv.getCombo1().then(dst => { 
     this.combo1 = dst; 
    }); 

    } 

    onChange(idCombo1: number) { 

    this.comboSrv.getCombo2(idCombo1).then(dst => { 
     this.combo2= dst; 
    }); 
    } 
} 
+0

In ngOnInit initialisieren Sie Combo2 mit dem gespeicherten Wert von Combo1 - 'this.comboSrv.getCombo2 (model.mycombo1)' – mchan

Antwort

0

Ich löste es in der onInit Funktion auch meine combo2 Werte zu bekommen. Andernfalls weiß die Ansicht nicht, wie das Kombinationsfeld beim Laden der Seite initialisiert wird. Ich hoffe, dieser Tipp hilft jemandem.

Verwandte Themen