0
時,我採用了棱角分明4打字稿沒有更新,我有<select>
個表在我的模板:角ngModel設置變量
<tr *ngFor="let task of tasksDetails">
<td>{{task.name}}</td>
<td>
<select class="form-control" [(ngModel)]="task.uiMetadata.worker">
<option value="">Select worker</option>
<option *ngFor="let worker of workers" [value]="worker.resource.id">{{worker.resource.name}}</option>
</select>
</td>
</tr>
內的另一部件我能夠添加/刪除工人名單並且它被輸出到Subject
該組件所預訂:
this.workerRemoved.subscribe(worker => {
_each(this.tasksDetails, taskTemplate => {
if (taskTemplate.uiMetadata.worker === member.resourceId) {
taskTemplate.uiMetadata.worker = '';
}
});
});
的問題是,當訂閱在變量更新字段,ngModel沒有拿起變化和反射它在用戶界面中。
因此,我們最終與在ng-reflect-model
正顯示出「11」的情況下,因爲「11」選項已被刪除的工人變量是一個空字符串,並選擇顯示爲空白。
如何讓Angular保持模型與我在訂閱中所做的更改保持同步?我試圖將其包裝在NgZone.run()
中,並且還調用ChangeDetectorRef.detectChanges()
,但都不會更新ng-reflect-model
值。
Here is a Plunker reproducing the error
您可以創建一個重新生成問題的重陷嗎? – echonax
@echonax添加鏈接到Plunker – BeaverusIV
https://plnkr.co/edit/SGbhsySRZAxWgWuANCwC?p=preview – yurzui