gpt4 book ai didi

angular6 - 使用 指令在 Angular 6 中使用 Angular Materials 设置 FontAwesome 5

转载 作者:行者123 更新时间:2023-12-02 00:59:16 26 4
gpt4 key购买 nike

基线:

  • 角度 6.0.3
  • 角 Material 6.4.2
  • "@fortawesome/angular-fontawesome": "^0.1.1"
  • "@fortawesome/fontawesome-svg-core": "^1.2.2"
  • "@fortawesome/free-solid-svg-icons": "^5.2.0"

    所以我已经安装了 angular-fontawesome 并且我正在尝试获取 <mat-icon>指令工作,但它不是。我不清楚如何注册字体,或者我是否也需要。我正在寻找一个例子,说明有人在哪里使用新的 font-awesome with angular 以及使用 <mat-icon> 需要什么指令来显示图标。如果我按照 angular-font-awesome GitHub 页面上的说明进行操作,一切正常,但他们使用的标签如下:<fa-icon icon="coffee"></fa-icon>

有人可以完成设置,这样我就可以使用 <mat-icon> 来渲染它们吗?指令。

最佳答案

直接取自 this link ,实现并融入我的项目,这些是我遵循的步骤。

  1. 安装相关的 FontAwesome 库

    npm i @fortawesome/fontawesome-svg-core
    npm i @fortawesome/free-brands-svg-icons
    npm i @fortawesome/free-regular-svg-icons
    npm i @fortawesome/free-solid-svg-icons
  2. 创建图标服务

    import { Injectable } from '@angular/core';
    import { MatIconRegistry } from '@angular/material';
    import { DomSanitizer } from '@angular/platform-browser';
    import { IconDefinition } from '@fortawesome/fontawesome-svg-core';

    @Injectable({
    providedIn: 'root'
    })
    export class IconService {
    constructor(private _iconRegistry: MatIconRegistry, private _sanitizer: DomSanitizer) {}
    addSvg(icon: IconDefinition) {
    const svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${icon.icon[0]} ${icon.icon[1]}">
    <path d="${icon.icon[4]}" />
    </svg>`;

    this._iconRegistry.getNamedSvgIcon(icon.iconName, icon.prefix).subscribe(
    () => {
    //Ok, icon already exists
    },
    () => {
    //Error, not found, add it
    this._iconRegistry.addSvgIconLiteralInNamespace(
    icon.prefix,
    icon.iconName,
    this._sanitizer.bypassSecurityTrustHtml(svg)
    );
    }
    );
    }
    }
  3. 添加您需要的图标,这应该根据需要进行,以防止包膨胀

    // In app.component or relevant component requiring icon
    import { faGoogle } from '@fortawesome/free-brands-svg-icons';
    /*...*/
    constructor(
    _iconService: IconService
    ) {
    _iconService.addSvg(faGoogle); // add icon to library
    }
  4. 使用你的图标

    <mat-icon svgIcon="fab:google"></mat-icon>

关于angular6 - 使用 <mat-icon> 指令在 Angular 6 中使用 Angular Materials 设置 FontAwesome 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51851999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com