我有一个select元素,它附带一个基本(更改)处理程序以及一个ngmodel。设置具有ng值的<option>
时,将触发更改处理程序。问题是[(ngModel)还没有新值。
<div>
<button style="margin: 8px 0;" (click)="getNextLink()" class="btn btn-primary btn-sm pull-right">Next Label ></button>
<div class="form-group">
<label for="filter-word">Select Word To Filter:</label>
<select [(ngModel)]="selectedLabels[selectedLabels.length]"
(change)="onChange($event)"
class="form-control"
id="filter-word"
name="filter-word">
<option *ngFor="let label of (primaryTopic.topics) | stringFilter: selectedLabels" [ngValue]="label">
{{label}}
</option>
</select>
</div>
</div>
以下是组件代码:
public onChange(event: any): void {
console.log('event', event);
console.log('this.selectedLabels', this.selectedLabels); // undefined
debugger;
}
如何更新ngModel时,我该如何回复?
答案 0 :(得分:4)
改为使用ngModelChange
:
(ngModelChange)="onChange($event)"
无法指定应执行事件处理程序的顺序。因为ngModelChange
本身是在绑定属性更新后由NgModel
发出的,所以这应该符合您的需求。