【发布时间】:2018-09-04 08:38:46
【问题描述】:
我有一个公司类,它有一个总部地址字段。地址是一个接口,它有另一个对象,country,它是另一个接口。 在我的数据库中,我存储了所有国家/地区。我有一个编辑选定公司的视图,在那里我可以设置或更改总部地址,并为国家/地区创建了一个 mat-select:
<mat-select [(ngModel)]="company.headquarter.country">
<mat-option *ngFor="let country of companyService.countries" [value]="country">
{{country.name}}
</mat-option>
</mat-select>
此代码将所选国家/地区保存到总部的国家/地区字段,但如果我想编辑同一家公司,mat-select 不会显示实际值。我该如何解决这个问题?
已编辑:
如果我将 ngModel 更改为 company.headquarter.country.id 并将 [value] 更改为 country.id,那么它可以正常工作,但是要存储国家/地区的代码或名称,我必须编写一个方法,它会找到country 通过 companyService.countries 数组中的 id 并将这个国家设置为 company.headquarter.country 的字段。所以这不是一个好的解决方案。
【问题讨论】:
-
是 ChangeDetection 问题吗?您的主要组件是在 OnPush 检测策略中吗?如果是,请查看angular.io/api/core/ChangeDetectorRef
标签: angular angular5 angular2-forms angular4-forms