[英]Angular 4 select not updating value in ngIf
我有一個ngIf使用選擇中的值來顯示或不顯示另一個選擇,但是當我在第一次選擇中更改值時,ngIf仍使用舊值。 我正在使用的代碼:
<div class="form-group" > <label>First select</label> <select name="status" class="form-control"[(ngModel)]="status.status"> <option *ngFor="let s of listStatus" [selected]="s.id === status.status" [value]="s.id">{{s.text}}</option> </select> </div> <div class="form-group" *ngIf="status.status === 1"> <label>Second select</label> <select name="blockLevel" class="form-control" [(ngModel)]="status.blockLevel"> <option *ngFor="let s of listBlockedLevel" [selected]="s.id === status.blockLevel" [value]="s.id">{{s.text}}</option> </select> </div>
在component.ts中,該值已正確更新。 我嘗試使用{{status.status}}顯示該值,但該值沒有變化。
解
我使用ChangeDetectorRef解決了我的問題。 在第一次選擇中,我使用了一種方法來更新值
<select name="status" class="form-control" [ngModel]="status.status" (ngModelChange)="setStatus($event)">
在ts組件中,我使用了這個
public setStatus(event: any) { this.status.status = event; this.ref.detectChanges(); }
在組件構造函數中,我用它來導入ChangeDetectorRef
private ref: ChangeDetectorRef
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.