在Angular2中设置ngmodel后,如何确保选择更改事件触发?

时间:2016-12-23 18:56:43

标签: javascript html angular select

我有一个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时,我该如何回复?

1 个答案:

答案 0 :(得分:4)

改为使用ngModelChange

(ngModelChange)="onChange($event)"

无法指定应执行事件处理程序的顺序。因为ngModelChange本身是在绑定属性更新后由NgModel发出的,所以这应该符合您的需求。