将全局使用的库模块导入 angular 个项目模块

Import globally used library module into angular project modules

我想我在这里做错了。

我想用angular-fontawesomemodule。按照说明将其导入 AppModule 成功。

export class AppModule {
constructor(library: FaIconLibrary) {
    // Add an icon to the library for convenient access in other components
    library.addIcons(
        faUsers,
        faUserCircle,
        faDesktop,
        faTachometerAlt,
        faWrench,
        faFolder,
        faChartArea,
        faTable,
        faSearch,
        faBell,
        faFileAlt,
        faExclamationTriangle,
        faDonate,
        faEnvelope,
        faUser,
        faCogs,
        faList,
        faSignOutAlt,
        faAngleUp,
        faLaughWink,
        faServer,
        faWarehouse,
        faPlusCircle
    )
}     

但是当我想在我自己的项目模块中使用它时,说 admin.module.ts。我必须再次导入所有这些吗?必须再次将相同的代码放入 admin.module.ts

在我看来。 AppModule 是根模块。我知道如果我有其他模块想使用图标,那么我可能必须这样做。但是,真的吗?连AppModule都不够?

FaIconLibrary 是一个 application-level singleton, so you only need to add icons to the library once. However you should add FontAwesomeModule to imports of your AdminModule to make <fa-icon> component accessible to the components declared in the AdminModule (it's a standard Angular thing).

您可能还会发现 读起来很有趣。

根据文档

图标可以在 app.module 中使用 FaIconLibrary.addIcons() 或 FaIconLibrary.addIconPacks() 注册一次。添加到库中的图标将可用于其父模块也导入 FontAwesomeModule 的任何其他组件。

所以重新检查后续步骤

1   Import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome'
2   Add FontAwesomeModule to imports
3   Inject FaIconLibrary into constructor of the module.
4   Import an icon like { faCoffee } from '@fortawesome/free-solid-svg-icons'
5   Add icon to the library with library.addIcons(faCoffee)