Angular Nebular 主题使用 FontAwesome 图标包
Angular Nebular theme using FontAwesome icon pack
堆栈:Angular9.1.7,Nebular 5.0.0,FontAwesome 5.13
我想使用以下指南将 Nebular 使用的默认图标集 (EvaIcons) 更改为 FontAwesome:
https://akveo.github.io/nebular/docs/guides/register-icon-pack#register-icon-pack
很遗憾,图标没有显示。我很接近,因为不再显示 Nebular EvaIcons。在 DeveloperTools 中,我可以看到 nb-icon
使用 fa-user
,但没有任何显示。
您没有提供已安装或配置的内容。
但我的答案还是来了...
我已经设法将 FontAwesome 加载到我的 Nebular 应用程序中。也就是说,不是替换 EvaIcons,而是将它们额外添加到 Eva。
- 安装 FontAwesome。
- 将其添加到您的 angular.json
- 在app.component
注册图标包
- 在 Nebulars nb-icon 组件中使用 FontAwesome
在代码中:
1. npm install --save @fortawesome/fontawesome-free
2. "styles": [..., "node_modules/@fortawesome/fontawesome-free/css/all.css", ...],
"scripts": [..., "node_modules/@fortawesome/fontawesome-free/js/all.js", ...]
3. import { NbIconLibraries } from '@nebular/theme';
@Component({
selector: 'ngx-app',
template: '<router-outlet></router-outlet>',
})
export class AppComponent implements OnInit {
constructor(private iconLibraries: NbIconLibraries) {
this.iconLibraries.registerFontPack('fas', { packClass: 'fas', iconClassPrefix: 'fa' });
this.iconLibraries.registerFontPack('far', { packClass: 'far', iconClassPrefix: 'fa' });
this.iconLibraries.registerFontPack('fab', { packClass: 'fab', iconClassPrefix: 'fa' });
this.iconLibraries.setDefaultPack('far');
...
4. <nb-icon icon="arrow-right" pack="fas"></nb-icon>
(Maybe there is a better way of doing this, maybe loading the js isn't required idk...)
通过这种方式,您可以使用 Eva 或 FontAwesome 图标,或任何已注册的包。
Eva: <nb-icon icon="SOME_ICON"> </nb-icon>
FontAwesome: <nb-icon icon="SOME_ICON" pack="fas/far/fab/fal/fad"></nb-icon>
使用下面的方法,
- 安装 font-awesome
npm install --save @fortawesome/fontawesome-free
- 在 angular.json 文件中添加样式
"styles": [
"node_modules/@fortawesome/fontawesome-free/css/all.css",
],
- 在模块中导入
import { NbIconModule } from '@nebular/theme';
imports: [
NbIconModule,
],
- 在component.ts
constructor(private iconLibraries: NbIconLibraries) {
this.iconLibraries.registerFontPack('font-awesome', { packClass: 'fab', iconClassPrefix: 'fa' });
}
- 在Component.html
<nb-icon icon="instagram" pack="font-awesome"></nb-icon>
希望有用
堆栈:Angular9.1.7,Nebular 5.0.0,FontAwesome 5.13
我想使用以下指南将 Nebular 使用的默认图标集 (EvaIcons) 更改为 FontAwesome:
https://akveo.github.io/nebular/docs/guides/register-icon-pack#register-icon-pack
很遗憾,图标没有显示。我很接近,因为不再显示 Nebular EvaIcons。在 DeveloperTools 中,我可以看到 nb-icon
使用 fa-user
,但没有任何显示。
您没有提供已安装或配置的内容。
但我的答案还是来了... 我已经设法将 FontAwesome 加载到我的 Nebular 应用程序中。也就是说,不是替换 EvaIcons,而是将它们额外添加到 Eva。
- 安装 FontAwesome。
- 将其添加到您的 angular.json
- 在app.component 注册图标包
- 在 Nebulars nb-icon 组件中使用 FontAwesome
在代码中:
1. npm install --save @fortawesome/fontawesome-free
2. "styles": [..., "node_modules/@fortawesome/fontawesome-free/css/all.css", ...],
"scripts": [..., "node_modules/@fortawesome/fontawesome-free/js/all.js", ...]
3. import { NbIconLibraries } from '@nebular/theme';
@Component({
selector: 'ngx-app',
template: '<router-outlet></router-outlet>',
})
export class AppComponent implements OnInit {
constructor(private iconLibraries: NbIconLibraries) {
this.iconLibraries.registerFontPack('fas', { packClass: 'fas', iconClassPrefix: 'fa' });
this.iconLibraries.registerFontPack('far', { packClass: 'far', iconClassPrefix: 'fa' });
this.iconLibraries.registerFontPack('fab', { packClass: 'fab', iconClassPrefix: 'fa' });
this.iconLibraries.setDefaultPack('far');
...
4. <nb-icon icon="arrow-right" pack="fas"></nb-icon>
(Maybe there is a better way of doing this, maybe loading the js isn't required idk...)
通过这种方式,您可以使用 Eva 或 FontAwesome 图标,或任何已注册的包。
Eva: <nb-icon icon="SOME_ICON"> </nb-icon>
FontAwesome: <nb-icon icon="SOME_ICON" pack="fas/far/fab/fal/fad"></nb-icon>
使用下面的方法,
- 安装 font-awesome
npm install --save @fortawesome/fontawesome-free
- 在 angular.json 文件中添加样式
"styles": [
"node_modules/@fortawesome/fontawesome-free/css/all.css",
],
- 在模块中导入
import { NbIconModule } from '@nebular/theme';
imports: [
NbIconModule,
],
- 在component.ts
constructor(private iconLibraries: NbIconLibraries) {
this.iconLibraries.registerFontPack('font-awesome', { packClass: 'fab', iconClassPrefix: 'fa' });
}
- 在Component.html
<nb-icon icon="instagram" pack="font-awesome"></nb-icon>
希望有用