Setzen einer Angular2 & lt; Option & gt; in einem & lt; select & gt; mit Zwei-Wege-Bindung
Würde ich mag, um das setup eine <select>
mit einem Standard - <option>
mit HTML, und füllen den rest der <select>
mit zwei-Wege-Bindung zu meinem Modell.
HTML:
<select class="form-control" required
[(ngModel)]="model.product"
ngControl="product">
<option value="">Select a product</option>
<option *ngFor="#product of products" [value]="product">{{product}}</option>
</select>
Modell:
products: string[] = [
'Foo',
'Bar'
];
Was da jetzt passiert, ist meine select ist die Bindung an das Modell, die:
model: Entry = new Entry();
So, es gibt keine default-Wert in der product
Eigenschaft, so ist die <select>
bindet sich an nichts. Ich meine, das ist eine Arbeit, wie erwartet.
Ich versuche, herauszufinden, wie man einen default-Wert zu zeigen, bis in der <select>
aber, und ich möchte zu tun, ohne harte Codierung ein UI-Wert in meinem Modell und säumigen, die in einer neuen Instanz von meinem Modell. Tut Winkel-2 haben eine Möglichkeit, damit umzugehen?
Edit:
Das Ergebnis der HTML sollte so Aussehen:
<select>
<option value>Select a product</option>
<option value="foo">Foo</option>
<option value="bar">Bar</option>
</select>
InformationsquelleAutor der Frage mariocatch | 2016-04-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass Angular hat eine Möglichkeit, damit umzugehen. Sie haben zu tun, einige arbeiten:
Plunker
Da Sie über NgModel binden Sie den ausgewählten Wert, müssen Sie legen Sie die gebundene Eigenschaft auf den Standardwert zunächst, die
null
andernfalls wird die option nicht standardmäßig aktiviert:Mit
null
bemerkte ich, dass der HTML-Code wirdSo, können Sie es vorziehen, verwenden Sie eine leere Zeichenfolge
''
stattnull
:Dann der HTML-Code wird
InformationsquelleAutor der Antwort Mark Rajcok
In der Tat, Sie konnte erstellen
Directive
zum Anhängen Standard-option und Griff zwei-Wege-Bindung:InformationsquelleAutor der Antwort kemsky
Auf beta 14 (siehe: Angula2-beta.14 Changlog), Winkel fügt die Unterstützung für das Objekt wählen tags:
statt
[value]
verwenden, können Sie[ngValue]
zum binden eines Objekts anngModel
im select-tag.Sehen Sie ein Beispiel auf Plunker mit default-Wert.
Dem Attribut
selected
nicht funktioniert, bin ich versucht zu reparieren, dies auf mein Projekt mit einigen workaround!Hoffe, die nützlich sein können.
InformationsquelleAutor der Antwort Maike Meneguetti
Ich hatte genau das gleiche Problem, wir können nur binden Sie die ngModel auf den Wert :
InformationsquelleAutor der Antwort Negin
Näherst du dich in richtige Richtung. Eine Sache, die Bedürfnisse zu berücksichtigen ist, dass die null-Wert-Modell wird im Vergleich mit einem leeren string als Wert der Standard-option.
Also, wenn Sie vergleichen Sie und setzen Sie null-Wert des Standard-text anzuzeigen, dann werde es funktionieren.
Ich habe wie oben festgelegt, und es ist für mich arbeiten !
InformationsquelleAutor der Antwort Pranav Labhe