2017-10-18 4 views
0

Wählen ich in meiner Sicht haben:in Angular 4

<select id="field_cliente" name="cliente" 
     [(ngModel)]="oportunidad.cliente"> 
     <option [ngValue]="null"></option> 
     <option [ngValue]="clienteOption" *ngFor="let clienteOption of clientes; trackBy: trackClienteById">{{clienteOption.razonSocial}}</option> 
</select> 

ich in meinem Controller haben:

trackClienteById(index: number, item: Cliente) { 
    return item; 
} 

Das Objekt ist:

cliente{ 
     id:"", 
     razonSocial:"" 
} 

gut Der Wert lädt, wenn ich Wählen Sie einen aus, aber wenn er eingegeben wird, wenn er bereits einen vorherigen Wert hat, passt er nicht zu dem Wert mit "Auswahl" und der "Auswahl" wird leer, auch wenn das Objekt einen Wert hat.

+0

Wie erklären Sie Cliente Klasse? Ich habe eine Demo eingerichtet, die Sie auf Ihr Beispiel korrigieren können: https://stackblitz.com/edit/angular-kr2ten?file=app/app.component.html – Vega

+1

Danke für Ihre Hilfe, am Ende wurde mir ein Beispiel gegeben von einem Freund. Es ist eine große Hilfe für den Link, den Sie mir geschickt haben, es erneut zu versuchen. –

+0

Mögliches Duplikat von [Angular 2, setzen Sie den Standardwert, um die Option auszuwählen] (https://stackoverflow.com/questions/39724161/angular-2-set-default-value-to-select-option) – Alex

Antwort

0
<select [compareWith]="equals" ... 

in Controller:

equals(o1: Cliente, o2: Cliente) { return o1.id === o2.id; }