1 回答

TA貢獻1829條經(jīng)驗 獲得超13個贊
只有一個icon變量,每次forEach()迭代時都會重新分配一個新的圖標路徑。這一張icon用于所有卡片,因此只顯示一張圖像。
方法一:
你可以有一個像這樣的圖標對象
var icons = {
'Mastercard': '../../assets/svg/logo-mastercard.svg',
'Amex': '../../assets/svg/icon-amex.svg'
};
而在 HTML 中,只需根據(jù)卡片類型使用適當?shù)膱D標即可。
<div class="flex-float">
<div class="float-end">
<img class="select--icon" [src]="icons[selectedCard.cardType]" />
<p class="selected--desc is-hidden-mobile-xs">
{{ selectedCard.cardType }}
</p>
</div>
</div>
無需對saveCreditCard數(shù)組中的任何更改ngOnInit()。
方法二:
如果要在 中的每個對象上存儲圖標saveCreditCard,則可以使用Array.map()。
在 中ngOnInit(),為每張信用卡分配圖標。
ngOnInit() {
this.savedCreditCard = this.savedCreditCard.map(card => {
let icon;
if (card.cardType === 'Mastercard') {
icon = '../../assets/svg/logo-mastercard.svg';
} else if (card.cardType === 'Amex') {
icon = '../../assets/svg/icon-amex.svg';
}
return {...card, "icon": icon};
});
}
然后在 HTML 中,使用卡片的icon屬性。
<div class="flex-float">
<div class="float-end">
<img class="select--icon" [src]="selectedCard.icon" />
<p class="selected--desc is-hidden-mobile-xs">
{{ selectedCard.cardType }}
</p>
</div>
</div>
添加回答
舉報