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