因为要触发(更改)事件,我们需要在UI中更改所选数据。我们可以使用EventEmitter吗?我想要在选择一个或多个元素时触发一个事件。谢谢
<select multiple (change)="setSelected($event.target)">
<option *ngFor="#item of myOptions" [value]="item.value">{{item.name}}</option>
</select>
export class myClass {
...
myOptions: [];
...
setSelected(selectElement) {
for (var i = 0; i < selectElement.options.length; i++) {
var optionElement = selectElement.options[i];
var optionModel = this.myOptions[i];
if (optionElement.selected == true) { optionModel.selected = true; }
else { optionModel.selected = false; }
}
}
}
答案 0 :(得分:1)
<select [ngModel]="selectedItem" (ngModelChange)="setSelected($event)">
setSelected(newVal) {
this.selectedItem = newVal //If changing the model is required
// ... do other stuff here ...
}
希望有所帮助
答案 1 :(得分:1)
正如其他人所说,你可以通过ngModel
<select multiple [(ngModel)]="selectedOptions" (change)="getSelected()">
<option *ngFor="let item of myOptions" [value]="item.value">
{{item.name}}
</option>
</select>
selectedOptions
是下拉列表中所选选项值的数组。您可以使用change
事件或ngModelChange
事件来检测何时选择了1个或多个选项。
这是一个展示这个(https://stackblitz.com/edit/angular-bvchcj?file=app%2Fapp.component.html)
的stackblitz