背景:我有一个Angular网站。在某些条件下,某些值仅应显示在数组中(用于下拉菜单)。由于性别差异,西班牙语站点有2个值,而英语站点只有1个值。我无法使其执行以下操作:
用例/目标: 用户转到西班牙语站点,然后选择“男性配偶”(“ Esposo”)。如果他们切换回英语站点,我希望它显示“配偶”。但是,当它在数据库中查找该用户的匹配记录时,将找到映射到Esposo的Male Spouse。
(注意:value是进入数据库的内容,viewValue是显示给用户的内容)
英语站点 [{value:'Spouse',viewValue:'Spouse'}]
西班牙网站: [{值:“男性配偶”,viewValue:“ Esposo”},{值:“女性配偶”,viewValue:“男性配偶”}]
我尝试过的事情:我考虑过要向数据库添加一个额外的列,也许是一个“键”,它可以映射到“表亲”,而性别则可以是“ M”,“ F”如果是西班牙文网站,则为NULL(如果是英语网站)。但是,在HTML中,似乎从下拉列表中只能选择一个值。我还查看了业务逻辑。如果可以的话,有人可以指出我的正确方向吗?
TS :
if (this.localeId == "es") { this.addRelationArrayElements(); }
addRelationArrayElements() {
this.relations.push({ value: 'CousinFemale', viewValue: this.cousinFemale }, { value: 'CousinMale', viewValue: this.cousinMale } );
}
HTML :
<mat-form-field>
<mat-select placeholder="Relationship" formControlName="relationship" required>
<mat-option *ngFor="let rel of relations" [value]="rel.value" (click)="selectRelationship(rel.value)">
{{ rel.viewValue }}
</mat-option>
</mat-select>
</mat-form-field>