我有一个 mat-select ,我想根据所选选项更改 mat-label 跨度中的标志图标。
显示初始标志,单击后跨度没有变化。
选项列表中的标志工作正常,所以问题只涉及label。
我正在尝试类似的东西:
HTML:
<mat-form-field>
<mat-label>
<span [class]="getLanguageFlag(selectedLanguage)"></span>
{{ selectedLanguage }}
</mat-label>
<mat-select
[(ngModel)]="selectedLanguage"
name="selectedLanguage"
id="selectedLanguage"
>
<mat-option
*ngFor="let language of languages"
[value]="language"
(click)="changeLanguage(language)"
>
<span [class]="getLanguageFlag(language)"></span>
{{ language }}
</mat-option>
</mat-select>
</mat-form-field>
TS:
selectedLanguage: string = environment.defaultLanguage;
constructor(
private store: Store<State>,
private translateService: TranslateService) {}
changeLanguage(language: string): void {
this.selectedLanguage = language;
}
getLanguageFlag(language: string): string {
let style = 'flag-icon flag-icon-';
return language === 'en' ? `${style}gb` : `${style}${language}`;
}
我也尝试过 getter/setter,但在使用 mat-select 时,setter 似乎不起作用。
在此先感谢您的帮助!