2 回答
TA贡献1803条经验 获得超6个赞
在 .ts 中创建一个新变量selectedLang ,changeLanguageId根据索引更新变量
changeLanguage(id){
this.sightService.changeLanguageId(id);
this.sightService.getSights().subscribe(sights => {
this.sights = sights;
});
this.selectedLang = id;
}
<div class="flag flag-srb" id="2" [style.opacity]="{{this.selectedLang === 2 ? 1 : 0.5}}" (click)="changeLanguage(2)">
<img src="assets/flags/srb.png" alt="srb" height="64" width="64">
</div>
<div class="flag flag-eng" id="1" [style.opacity]="{{this.selectedLang === 1 ? 1 : 0.5}}" (click)="changeLanguage(1)">
<img src="assets/flags/eng.png" alt="eng" height="64" width="64">
</div>
TA贡献1921条经验 获得超9个赞
您可以将变量设置为选定的标志索引
var selectedflag
指数;
然后根据服务为您提供索引设置标志值
this.selectflagindex =this.sights[0].pin_lang_id;
然后在模板中比较选定的索引并将不透明度设置为 1 但默认情况下将所有设置为 0.5
你 div 是这样的
<div [ngStyle]="{'opacity':check selected(id)}" </div>
checkselected(id){ return this.selectedFlag == id ? '1' :'0.5'}
通过发送适当的 id,将为 div 设置 opacity 的值。
这将适用于任何数量的语言,不仅适用于两个
添加回答
举报