如何在角度组件中使用字体很棒的品牌图标?

kal*_*lek 0 font-awesome font-awesome-5 angular angular-fontawesome

我正在尝试在 Angular 10 应用程序中使用 Font Awesome 品牌图标。我已经安装了 fontawesome 并尝试使用以下命令导入它:

import { faDiscord } from '@fortawesome/fontawesome-free-brands';
Run Code Online (Sandbox Code Playgroud)

在我的组件中。然后我将 faDiscord 分配给一个属性,并尝试在我的 html 中像这样使用它:

<fa-icon [icon]="faDiscord"></fa-icon>
Run Code Online (Sandbox Code Playgroud)

但是,我的组件现在卡在加载中,我该如何解决这个问题?已经看到这个问题:How do i usebrand fontawesome icon in Angular

M F*_*ajj 7

首先,运行以下命令:

npm install @fortawesome/fontawesome-svg-core
npm install @fortawesome/free-solid-svg-icons
npm install @fortawesome/angular-fontawesome@0.7.0
Run Code Online (Sandbox Code Playgroud)

您应该根据您的 Angular 版本更改最后一个命令中的版本号。请参阅文档

Font Awesome 图标分为不同的样式,并以单独的包形式提供,以满足不同的需求并减少单个包的大小。要使用图标,您需要安装包含它的包。

就您而言,您正在尝试使用包icon内可用的包Brands Style不和谐图标

在此输入图像描述

因此,运行以下命令: 参见此处

npm install @fortawesome/free-brands-svg-icons
Run Code Online (Sandbox Code Playgroud)

现在导入FontAwesomeModuleAppModule:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';

@NgModule({
  imports: [
    BrowserModule,
    FontAwesomeModule
  ],
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

在您的组件中blabla.components.ts,创建一个新变量并faDiscord为其赋值:

import { Component } from '@angular/core';
import { faDiscord } from '@fortawesome/fontawesome-free-brands';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  faDiscord  = faDiscord;
}
Run Code Online (Sandbox Code Playgroud)

现在在你的app.component.html

<fa-icon [icon]="faDiscord"></fa-icon>
Run Code Online (Sandbox Code Playgroud)

这是一个Stackblitz