2016-06-24 8 views
1

Wie Sie einen Standardwert festlegen, kann ich Index nicht verwenden, da der Standardwert von Daten abhängt.Angular 2 Dropdown-Optionen Standardwert ohne Index

<select [(ngModel)]="task.language" > 
    <option *ngFor="let language of languages" [selected]="user.language" > 
     {{language}} 
    </option> 
</select> 

"Benutzer" sind Daten, gefüllt mit angeschlossenen Benutzerinformationen (Sprache, Vorname, Nachname, ...)

+0

Vielleicht kann dies Ihnen helfen. https://github.com/angular/angular/issues/4843#issuecomment-206583992 – Dinistro

+0

[ngValue] wie in diesem Problem angegeben funktioniert nicht – Florence

+0

Was ist der Zweck Ihrer [(ngModel)] = "task.language" in der Element auswählen? – hholtij

Antwort

3

ausgewählt ist eine Boolesche. Versuchen Sie dies:

<select [(ngModel)]="task.language" > 
    <option *ngFor="let language of languages" [selected]="user.language === language" > 
     {{language}} 
    </option> 
</select> 
+0

das ist nicht Arbeit – Florence

+0

Das funktioniert für mich. Vielleicht habe ich es falsch verstanden. Soll der ausgewählte Wert des ausgewählten Elements die Sprache in 'user.language' sein? Wenn dies der Fall ist und es nicht funktioniert, vergewissern Sie sich, dass der Benutzer ausgefüllt ist. Sie könnten stattdessen 'user? .language === language' versuchen. – hholtij

+1

Betroffen für meine schnelle Antwort, endlich funktioniert das. Ich habe vergessen, dass es Groß-und Kleinschreibung war! vor langugues = ["nl", "fr"] und zum Beispiel user.language = 'NL' jetzt: languagues = ["NL", "FR"] und zum Beispiel user.language = 'NL' und das arbeitet mit [ausgewählt] = "user.language === Sprache" Dank – Florence