如何将font-awesome 5与Angular (2+)配合使用?

我try 在组件中添加以下内容:

import {faChevronLeft, faChevronRight} from '@fortawesome/fontawesome-free-solid';
import fontawesome from '@fortawesome/fontawesome';
...
constructor(){
   fontawesome.library.add(faChevronLeft, faChevronRight);
}

然后在HTML中:

<span class="fa" [class.fa-chevron-left]="direction==='left'" [class.fa-chevron-right]="direction==='right'"></span>

但这给了我一个圆圈里闪烁的问号.

推荐答案

您有两个 Select :


1.使用图书馆

只要按照他们github page的指示go 做就行了.


2.直接使用Fontawese5

确保你已经安装了所有相关的npm packages

  1. 导入相关图标:

    import {faChevronLeft, faChevronRight} from '@fortawesome/fontawesome-free-solid';
    import fontawesome from '@fortawesome/fontawesome';
    
  2. 将图标添加到fontawesomein global scope(不在组件的构造函数内):

    fontawesome.library.add(faChevronLeft, faChevronRight);
    
  3. 在html中使用它:

    <span class="fas" [class.fa-chevron-left]="direction==='left'" [class.fa-chevron-right]="direction==='right'"></span>
    
  4. 注意html中的前缀:

    • fas表示fontawesome-free-solid个图标(也适用于fa)

      <span class="fas fa-chevron-left"></span>
      
    • fab代表fontawesome-free-brands个图标

      <span class="fab fa-bitcoin"></span>
      
    • far代表fontawesome-free-regular个图标

      <span class="far fa-chevron-left"></span>
      
    • fal代表fontawesome-free-light个图标(专业版)

      <span class="fal fa-chevron-left"></span>
      

Important note:

只要完成一次(初始化时),就可以使用变量定义fontawesome个类.然而,如果变量改变了它的值,它将不会反映在html中.

<span class="fas fa-chevron-{{direction}}"></span>

这将在初始化时放置正确的图标,但如果之后方向发生变化,它将不会被反映出来

<span *ngIf="direction==='right'"><span class="fas fa-chevron-right"></span></span>
<span *ngIf="direction==='left'"><span class="fas fa-chevron-left"></span></span>

外面的span是必须的,因为里面的span换成了svg,所以你不能把*ngIf放在上面.

Further reading:

Angular相关问答推荐

Angular material 输入字段中的图标未显示

Angular前端调用ALB身份验证后的后端并重定向

尽管有模拟间谍实现,规范文件仍调用真正的服务

带逻辑的组件decorator 中的Angular 主机侦听器属性

如何在构造函数中测试MatDialog.Open

CDK虚拟滚动由于组件具有注入属性而在滚动时看到错误的值

HttpInterceptorFn在Angular 17中被忽略

Angular 17多内容投影错误

ANGLE v16独立组件不能与拦截器一起工作?

VS代码中带Angular 17的缩进新控制流

如何使用来自不同可观测对象的值更新可观测对象

找不到模块webpack dev服务器

大型 Angular 12 应用程序 - 我如何管理 js 文件

在 Angular material 表单元格中渲染 html

Renderer2.appendChild 没有按预期工作?

单选按钮的Angular2 Reactive Forms formControl

如何检测滚动到html元素的底部

ERROR 错误:StaticInjectorError(AppModule)[UserformService -> HttpClient]:

Firestore 从集合中获取文档 ID

Angular 5 和material - 如何从 SnackBar 组件更改背景 colored颜色