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

Jac*_*phy 4 html javascript select angular

我有一个选择元素,它具有一个附加的基本(更改)处理程序以及一个ngmodel。当<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>
Run Code Online (Sandbox Code Playgroud)

这是组件代码:

  public onChange(event: any): void {
    console.log('event', event);
    console.log('this.selectedLabels', this.selectedLabels); // undefined
    debugger; 
  }
Run Code Online (Sandbox Code Playgroud)

仅当ngModel更新后,我该如何回应?

Gün*_*uer 5

使用ngModelChange来代替:

(ngModelChange)="onChange($event)"
Run Code Online (Sandbox Code Playgroud)

无法指定应按什么顺序执行事件处理程序。由于绑定属性更新后ngModelChange自身会发出NgModel,因此这应该符合您的需求。

  • 完全符合人们的预期。感谢您的及时回复! (2认同)