Я создаю профиль пользователя, в котором пользователь может отправлять ссылки на свои учетные записи в социальных сетях.Каждая учетная запись представлена с помощью интерактивной ссылки.Какой значок должен быть выбран, определяется несколькими условиями в [ngClass], вот код:
<div *ngIf="socialMediaLinkList.length > 0" class="topic">
<strong>can be followed on:</strong>
<a *ngFor="let socialMediaLink of socialMediaLinkList" [href]="socialMediaLink.link">
<i [title]="socialMediaLink.socialMediaType"
[ngClass]="{
'fa fa-youtube':socialMediaLink.socialMediaType === 'YOUTUBE',
'fa fa-facebook-official':socialMediaLink.socialMediaType === 'FACEBOOK',
'fa fa-twitter':socialMediaLink.socialMediaType === 'TWITTER',
'fa fa-reddit':socialMediaLink.socialMediaType === 'REDDIT',
'fa fa-pinterest':socialMediaLink.socialMediaType === 'PINTEREST',
'fa fa-linkedin-square':socialMediaLink.socialMediaType === 'LINKEDIN',
'fa fa-instagram':socialMediaLink.socialMediaType === 'INSTAGRAM',
'fa fa-google-plus':socialMediaLink.socialMediaType === 'GOOGLE_PLUS',
'fa fa-tumblr-square':socialMediaLink.socialMediaType === 'TUMBLR',
'fa fa-vimeo-square':socialMediaLink.socialMediaType === 'VIMEO',
'fa fa-vk':socialMediaLink.socialMediaType === 'VKONTAKTE',
'fa fa-weibo':socialMediaLink.socialMediaType === 'WEIBO',
'fa fa-renren':socialMediaLink.socialMediaType === 'RENREN',
'fa fa-odnoklassniki':socialMediaLink.socialMediaType === 'ODNOKLASSNIKI',
'fa fa-flickr':socialMediaLink.socialMediaType === 'FLICKR'
}"></i>
</a>
<mat-divider></mat-divider>
</div>
Проблема в том, что только последний значок в списке условий отображается правильно, все остальные отображаются какединообразные блоки, например:
И это только потому, что FLICKR оказался в списке случайно сгенерированных учетных записей социальных сетей.Если FLICKR не является частью этого списка, все значки учетных записей социальных сетей будут блокироваться.Все изменится, если, например, я поменяю условие для ODNOKLASSNIKI на FLICKR, сделав ODNOKLASSNIKI последним.Теперь Odnoklassniki - единственный значок, который будет отображаться правильно.
Я следовал примеру ngClass здесь https://codecraft.tv/courses/angular/built-in-directives/ngstyle-and-ngclass/ и я, насколько я понимаю, не делаю никаких ошибок.
Вот как инициализируется список с помощью класса SocialMediaLink
export class SocialMediaLink{
constructor(public socialMediaType:string, public link: string){}
}
if(this.aboutSection.socialMediaAccounts !== undefined){
this.selectedSocialMediaAccounts = new Map<SocialMedia,string>((<any>Object).entries(this.aboutSection.socialMediaAccounts));
this.selectedSocialMediaAccounts.forEach((link: string, socialMediaType:SocialMedia) =>
this.socialMediaLinkList.push(new SocialMediaLink(socialMediaType.toString(), link)));
}
Может кто-нибудь сказать мне, как я могу решить эту проблему?Спасибо
РЕДАКТИРОВАТЬ: это отличный шрифт, cdn Я использую @import 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css';