我有一个 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 已更新时,我该如何响应?
最佳答案
使用 ngModelChange
代替:
(ngModelChange)="onChange($event)"
无法指定应以何种顺序执行事件处理程序。因为
ngModelChange
本身是在绑定(bind)属性更新后由 NgModel
发出的,所以这应该符合您的需求。关于javascript - 如何确保在 Angular2 中设置 ngmodel 后触发选择更改事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41306585/