2016-06-09 4 views
5

Ich versuche einen Anfangswert beim Füllen einer Auswahl zu setzen, die Daten kommen aus dem Rest und werden in die Komponente geladen. hatAngular2 select initial object mit ngValue

... 
ngOnInit():any { 

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

Erste das Modellobjekt Hexe ein Land: Der Anfangswert wird nach dem

gibt es die Liste zu füllen, die Auswahl nicht gesetzt/aktualisiert

... 
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> 

...

Alles funktioniert, ich kann ein Land auswählen und es wird im Modell korrekt aktualisiert, aber der Anfangswert ist nicht ausgewählt, aber im Modell vorhanden ... Irgendwelche Vorschläge oder ist das ein Fehler?

Danke!

+0

In naher Zukunft sollten Sie in der Lage sein, eine benutzerdefinierte Komparatorfunktion zu übergeben. Sehen Sie diese Ausgabe: https://github.com/angular/angular/issues/13268 – kub1x

Antwort

4

Wenn der Standardwert union.country zugewiesen ist und es ein Objekt (gegen einen primitiven Wert) ist, muss es dieselbe Instanz sein, nicht nur ein Objekt mit demselben Inhalt.

+0

Danke, das ist es. – fleske

+0

Ich bin gerade Debuggen eines ähnlichen Problems, und dies bestätigte meine Vermutung, warum die Auswahl nicht an den Wert gebunden war, den ich es gab. Vielen Dank. – peregrination

Verwandte Themen