在 PrimeNG 组件(如 p-menu)中直接渲染 Unicode 符号(如 ™、®)无需额外转义或 DOM 操作,只需在 TypeScript 字符串中使用 Unicode 转义序列(如 u2122、u00AE)即可原生支持。
在 primeng 组件(如 `p-menu`)中直接渲染 unicode 符号(如 ™、®)无需额外转义或 dom 操作,只需在 typescript 字符串中使用 unicode 转义序列(如 `u2122`、`u00ae`)即可原生支持。
PrimeNG 的菜单、按钮、标签等组件默认基于标准 HTML 渲染,因此完全支持 JavaScript 字符串中的 Unicode 字面量。你无需调用 DomSanitizer.bypassSecurityTrustHtml() 或手动解析 HTML 实体(如 ™ 或 ™),因为这些实体在模板中才需解析,而 TypeScript 字符串中应直接使用 Unicode 码点。
✅ 推荐做法:使用 Unicode 转义序列
在定义菜单项时,直接在 label 字符串中嵌入 Unicode:
this.menuItems = [ { label: 'Application 1', icon: 'pi pi-fw', command: () => this.handleAction('app1') }, { label: 'Application 2 u2122', icon: 'pi pi-fw', command: () => this.handleAction('app2') }, // ™ { label: 'Application 3 u00AE', icon: 'pi pi-fw', command: () => this.handleAction('app3') } // ®];
⚠️ 不推荐的做法
? 进阶提示:统一管理符号常量
为提升可维护性,建议将常用符号提取为常量:
export const TRADEMARK = 'u2122'; // ™export const REGISTERED = 'u00AE'; // ®export const COPYRIGHT = 'u00A9'; // ©// 使用示例{ label: `My Product ${TRADEMARK}`, command: () => {} }
? 注意事项总结
通过这种方式,你既能保证符号正确渲染,又能维持代码简洁性与安全性,真正实现“零配置”符号支持。