1 回答
![?](http://img1.sycdn.imooc.com/5333a0780001a6e702200220-100-100.jpg)
TA贡献1829条经验 获得超13个赞
只有一个icon变量,每次forEach()迭代时都会重新分配一个新的图标路径。这一张icon用于所有卡片,因此只显示一张图像。
方法一:
你可以有一个像这样的图标对象
var icons = {
'Mastercard': '../../assets/svg/logo-mastercard.svg',
'Amex': '../../assets/svg/icon-amex.svg'
};
而在 HTML 中,只需根据卡片类型使用适当的图标即可。
<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数组中的任何更改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>
添加回答
举报