nebular 引入iconfont 字体图标,图标渲染成了框框

本文介绍了在Angular项目中遇到字体图标显示为框框的问题,问题的关键在于`packClass`属性未正确设置。通过修改`registerFontPack`方法,将`packClass`设置为正确的值,如`iconfont`,并确保图标类名前缀正确,成功解决了字体图标无法识别的问题。修复代码展示了如何在`NbFontIcon`类中处理字体图标类名和内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

angular 项目,需要引入字体图标,在项目初始化的时候注册了字体,如下:

this.iconLibrary.registerFontPack('iconfont', { iconClassPrefix: 'icon' });

使用nb-icon 调用字体图标,如下:

<nb-icon icon="" pack="iconfont"></nb-icon>
<span>控制面板</span>

结果渲染成了框框,说明字体识别不出来。
在这里插入图片描述

问题解决

其中packClass 属性至关重要,用于指明字体图标的font-family

this.iconLibrary.registerFontPack('iconfont', { packClass: 'iconfont', iconClassPrefix: 'icon' });

核心代码如下:

export class NbFontIcon {
    constructor(name, content, params = {}) {
        this.name = name;
        this.content = content;
        this.params = params;
    }
    getClasses(options) {
        const classes = [];
        if (this.params.packClass) {
            classes.push(this.params.packClass);
        }
        const name = this.params.iconClassPrefix ? `${this.params.iconClassPrefix}-${this.name}` : this.name;
        classes.push(name);
        return classes;
    }
    getContent(options) {
        return this.content;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值