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 的值。
這將適用于任何數量的語言,不僅適用于兩個
添加回答
舉報