[英]Angular 2 select not change ngModel
有两个选择,第二个取决于第一个:
<div class="form-group">
<label class="col-xs-12 col-sm-2 control-label">Тип ТС:</label>
<div class="col-xs-12 col-sm-10">
<select class="form-control " type="text" [(ngModel)]="item.TransportTypeId">
<option *ngFor='let type of transportTypes' [ngValue]='type.Id' [textContent]='type.Name'></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-xs-12 col-sm-2 control-label">Подтип ТС:</label>
<div class="col-xs-12 col-sm-10">
<select class="form-control " type="text" [(ngModel)]="item.TransportSubTypeId" (ngModelChange)="show()">
<option [ngValue]="undefined">Не указано</option>
<option *ngFor="let subType of transportSubTypes | filterBy: ['TransportTypeId']: item.TransportTypeId" [ngValue]='subType.Id' [textContent]='subType.Name'></option>
</select>
</div>
</div>
假定第二select
可以为空(未定义)。 最初,所有方法都可以正常工作,两个select
都具有值,第二个ngModelChange
更改时,它可以工作。 但是,如果我在第一个select
选择了任何值,则当第二个select
的过滤器返回一个空数组时,则第二个select
在视觉ngModel
被丢弃为值Not chosen
ngModel
( undefined
),但是ngModel
不等于undefined
。
例如:
item.TransportTypeId = 1;
item.TransportSubTypeId = 1;
改成:
item.TransportTypeId = 2;
filterBy
过滤器返回[], item.TransportSubType === 1
,但是Not chosen
了“ Not chosen
”值,并且不会发生ngModelChange事件。
帮助我弄清楚如何制作它,以便select自动重置模型的值。
您还需要添加组件逻辑以正确理解查询。 但是通过查找查询来更改代码,如下所示
(ngModelChange)="show($event)"
//component
show(event) { this.val = event.value; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.