Angular 9 + FontAwesome 0.6:“错误NG8001:“ fa-icon”不是已知元素”

时间:2020-04-18 15:32:53

标签: angular font-awesome

我在尝试使用字体惊人的图标时遇到问题。我已经使用命令行将FontAwesome安装到了我的项目中:

alter table ingredients add constraint chk_ingredients_stock_gt_0
    check (stock >= 0);

我有一个子模块,我想在其内部使用“ fas”->“ images”图标。因此,我创建了我的子模块:

ng add @fortawesome/angular-fontawesome@latest

此子模块中有一个组件(photo-list.component.ts和photo-list.component.html)。在其HTML文件中,我只是将以下行显示为标题中的图标:

import { PhotoListComponent } from './photo-list.component';
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { library } from '@fortawesome/fontawesome-svg-core';
import { fas } from '@fortawesome/free-solid-svg-icons';

@NgModule({
  declarations: [
    PhotoListComponent
  ],
  imports: [
    CommonModule,
    FontAwesomeModule
  ]
})
export class PhotoListModule {
  constructor() {
    library.add(fas);
  }
}

当我运行我的角度项目并打开此模块时,会发生以下错误(并且图标会显示注释):错误NG8001:“ fa-icon”不是已知元素

为什么不起作用?

2 个答案:

答案 0 :(得分:2)

我已经检查了代码:fontawesome中进行了一些更改,现在必须进行正确的导入:

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

import { AppComponent } from './app.component';
import { HelloComponent } from './hello.component';

import { FontAwesomeModule, FaIconLibrary  } from '@fortawesome/angular-fontawesome';

import { faCoffee, fas } from '@fortawesome/free-solid-svg-icons';

@NgModule({
  imports:      [ BrowserModule, FormsModule, FontAwesomeModule ],
  declarations: [ AppComponent, HelloComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { 
  constructor(library: FaIconLibrary) {
    library.addIconPacks(fas);
    library.addIcons(faCoffee);
  }
}

根据您的代码,查看工作示例:https://stackblitz.com/edit/angular-5qu1fy

答案 1 :(得分:0)

我知道这是一个老问题,但是如果有人使用Angular Material,我想添加一些信息。 根据他们的文档https://github.com/FortAwesome/angular-fontawesome。只需将fontawesome导入您的material模块中,然后在任何组件中使用它并在html中绑定属性,例如;

import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
    
@NgModule({
  imports: [FontAwesomeModule]
})
export class MaterialModule {}

//any component
import { faGoogle } from '@fortawesome/free-brands-svg-icons';

googleIcon = faGoogle;

//html
<fa-icon [icon]="googleIcon"></fa-icon>