Ich verwende Angular2 und ngSemantic
Bibliothek. Ich habe ein Formular, und hier ist mein Code:ngSemantic Auswahl bindet nicht an Objekt
Template-Datei:
<div class="container">
<h1>My first form</h1>
<form class="ui form" [formGroup]="myForm">
<sm-loader [complete]="!submitted" class="inverted" text="Loading..."></sm-loader>
<div class="field">
<sm-select [(model)]="firstSelect" [control]="myForm.controls.category" placeholder="Search..." class="fluid search">
<option *ngFor="let item of itemslist" [value]="item">{{item.name}}</option>
</sm-select>
</div>
<div class="field">
<sm-select placeholder="Search..." class="fluid search">
<option *ngFor="let i of firstSelect?.items">{{i}}</option>
</sm-select>
</div>
<sm-button (click)="onSubmit()" [disabled]="!myForm.valid" class="primary">Login</sm-button>
</form>
</div>
Component-Datei:
itemslist: any = [
{ name: 'first', items: ['one', 'two', 'three']},
{ name: 'second', items: ['one', 'two', 'three']},
{ name: 'third', items: ['one', 'two', 'three']}
];
constructor(private dataService: DataService, fb: FormBuilder) {
this.myForm = fb.group({
'category': [],
'subcategory': [],
'name': [],
'email': []
});
}
Die Schleife in der zweiten Auswahl funktioniert nicht, weil firstSelect
Ergebnisse eine sein Zeichenfolge anstelle von Object
. Vielleicht passiert das, weil select
/option
nur mit string
oder number
umgehen.
Wie kann ich das lösen?
Ja, ich weiß. Ich habe meine Frage bearbeitet, es war ein Tippfehler. Entschuldigung und danke für deine Antwort. Wie auch immer, es funktioniert nicht. – smartmouse
Ich weiß nicht 'sm-select', aber für die normale Auswahl müssen Sie' [ngValue] = "..." 'beim Binden von Objekten anstelle von Strings auf dem' ' Element verwenden. –
Ich weiß. Wenn 'select' und' ngValue' auf 'option' verwendet wird, funktioniert es :( – smartmouse