2016-06-09 11 views
5

Sto tentando di impostare un valore iniziale durante il riempimento di una selezione, i dati provengono dal resto e vengono caricati nel componente. Il valore iniziale non è impostata/aggiornato dopo l'Angular2 selezionare l'oggetto iniziale con ngValore

Ottenere la lista per riempire il prescelto:

... 
ngOnInit():any { 

this.crudService.get(`/api/countries`).subscribe(data => {this.countries = data;}); 
... 

Ottenere la strega modello a oggetti ha un Paese:

... 
this.crudService.get('/api/unions/default').subscribe(data => { 
this.union = data; 
... 

HTML:

... 
<div class="col-md-2"> 
       <select *ngIf="union.country" [(ngModel)]="union.country" class="form-control"> 
       <option *ngFor="let c of countries" [ngValue]="c">{{c.code}}</option> 
       </select> 
      </div> 

...

Tutto funziona, posso selezionare un paese ed è correttamente aggiornato nel modello ma il valore iniziale non è selezionato ma esiste nel modello ... Qualche suggerimento o si tratta di un bug?

Grazie!

+0

In un prossimo futuro, dovresti essere in grado di passare una funzione di confronto personalizzata. Vedi questo problema: https://github.com/angular/angular/issues/13268 – kub1x

risposta

4

Se il valore predefinito è assegnato a union.country ed è un oggetto (rispetto a un valore primitivo), deve essere la stessa istanza, non solo un oggetto con lo stesso contenuto.

+0

Grazie, è tutto. – fleske

+0

Sto solo mettendo a punto un problema simile, e questo ha confermato la mia ipotesi sul perché la selezione non fosse vincolante per il valore che stavo dando. Grazie. – peregrination

Problemi correlati