Comment puis-je obtenir la valeur de l'option de sélection dans Angular 4?
Je veux l'assigner à une nouvelle variable dans le fichier Component.ts. J'ai essayé cela mais rien ne sort.
Pouvez-vous aussi le faire en utilisant [(ngModel)]?
composant.html
<form class="form-inline" (ngSubmit)="HelloCorp(f)" #f="ngForm">
<div class="select">
<select class="form-control col-lg-8" #corporation required>
<option *ngFor="let corporation of corporations" [value]="corporationObj">{{corporation.corp_name}}</option>
</select>
<button type="submit" class="btn btn-primary manage">Submit</button>
</div>
</form>
composant.ts
HelloCorp() {
const corporationObj = corporation.value;
}
En général (voir Stackblitz ici: https://stackblitz.com/edit/angular-gh2rjx ):
HTML
<select [(ngModel)]="selectedOption" name="first">
<option *ngFor="let o of options">
{{o.name}}
</option>
</select>
<button (click)="print()">Click me</button>
<p>Selected option: {{ selectedOption }}</p>
<p>Button output: {{ printedOption }}</p>
Manuscrit
export class AppComponent {
selectedOption: string;
printedOption: string;
options = [
{ name: "option1", value: 1 },
{ name: "option2", value: 2 }
]
print() {
this.printedOption = this.selectedOption;
}
}
Dans votre cas spécifique, vous pouvez utiliser ngModel comme ceci:
<form class="form-inline" (ngSubmit)="HelloCorp()">
<div class="select">
<select [(ngModel)]="corporationObj" class="form-control col-lg-8" #corporation required>
<option *ngFor="let corporation of corporations"></option>
</select>
<button type="submit" class="btn btn-primary manage">Submit</button>
</div>
</form>
HelloCorp() {
console.log("My input: ", corporationObj);
}
export class MyComponent implements OnInit {
items: any[] = [
{ id: 0, name: 'one' },
{ id: 1, name: 'two' },
{ id: 2, name: 'three' },
{ id: 3, name: 'four' },
{ id: 4, name: 'five' },
{ id: 5, name: 'six}' }
];
selected: number = 0;
constructor() {
}
ngOnInit() {
}
selectOption(id: number) {
//getted from event
console.log(id);
//getted from binding
console.log(this.number)
}
}
<div>
<select (change)="selectOption($event.target.value)"
[(ngModel)]="selected">
<option [value]="item.id" *ngFor="let item of items">{{item.name}}</option>
</select>
</div>
Code HTML
<form class="form-inline" (ngSubmit)="HelloCorp(modelName)">
<div class="select">
<select class="form-control col-lg-8" [(ngModel)]="modelName" required>
<option *ngFor="let corporation of corporations" [ngValue]="corporation">
{{corporation.corp_name}}
</option>
</select>
<button type="submit" class="btn btn-primary manage">Submit</button>
</div>
</form>
Code composant
HelloCorp(corporation) {
var corporationObj = corporation.value;
}
Il vous suffit de mettre [(ngModel)]
sur votre élément select:
<select class="form-control col-lg-8" #corporation required [(ngModel)]="selectedValue">