ThingsBoard ui-ngx 组件开发指南:组件目录在哪、怎么改、常见坑

发布时间:2026/11/4 12:02:05

ThingsBoard ui-ngx 组件开发指南:组件目录在哪、怎么改、常见坑 ThingsBoard ui-ngx 组件开发指南组件目录在哪、怎么改、常见坑【免费下载链接】thingsboardOpen-source IoT Platform - Device management, data collection, processing and visualization.项目地址: https://gitcode.com/GitHub_Trending/th/thingsboard最近有人在群里问给设备列表页加一个自定义勾选框该从哪下手翻一圈代码就会发现ThingsBoard 这套 IoT 平台的前端是标准的 Angular 工程所有界面都长在 ui-ngx 目录里组件开发指南基本就是找到 shared 组件库、注册进模块这两件事。它到底是干什么的一句话ThingsBoard 是开源 IoT 平台管设备、收数据、做可视化ui-ngx 就是它管理界面那半边天。你如果是接手这个仓库的前端或者想给平台加自定义组件90% 的时间会待在 ui-ngx 里。两个位置先记住ui-ngx/src/app/shared/共享组件、指令、样式令牌ui-ngx/src/app/modules/home/登录后看到的所有业务页面目录地图长什么样按职责分四个地方各管一摊不用记全知道去哪翻就行src/app/core/认证、HTTP 服务、全局状态属于地基平时少动src/app/shared/components/复用组件库从勾选框到表格到弹窗都在这里src/app/modules/业务模块home 是主界面dashboard 和 login 相对独立src/styles.scsssrc/theme.scsssrc/scss/全局样式入口和主题变量三步把前端跑起来最省事的路径就是这三条命令git clone https://gitcode.com/GitHub_Trending/th/thingsboard cd thingsboard/ui-ngx yarn install然后yarn start起本地服务。工具上 VS Code 装个 Angular Language Service 就够了不装也能干。有一个前提别忽略前端只是壳登录态和页面数据全由 Java 后端提供proxy.conf.js 里写死了localhost:8080。所以要么先按 docker/ 里的 compose 文件把后端拉起来要么自己改转发地址否则起完就是一个转圈的登录页。核心用法组件从哪来新组件怎么注册先说最省事的——直接抄现成的。所有共享组件由 shared.module.ts 统一exports模板里写tb-checkbox、tb-dialog这类选择器就能用。注意一个事实改任何一个 shared 组件全平台所有页面同时生效所以动它之前想清楚影响面。要加自己的组件流程是生成 注册ng generate component shared/components/my-widgetComponent({ selector: tb-my-widget, templateUrl: ./my-widget.component.html, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false })生成后把类名加进shared.module.ts的declarations跨模块用则同步加进exports只在当前业务模块内的组件注册到该模块自己的.module.ts就行。表单类组件记得实现ControlValueAccessor参照 tb-checkbox.component.ts 的写法。改之前先知道的几个坑按踩过的频率排序OnPush 不是默认开的。原因仓库里只有 icon、面包屑这类高频渲染组件配了changeDetection: ChangeDetectionStrategy.OnPush。做法新组件默认不加也行但列表、图表容器建议加上。全局 hack 样式会炸。原因theme.scss里的变量被所有组件引用直接覆写等于动了地基。做法样式覆盖写在组件自己的.scss里。yarn install之后补丁是自动打的。原因patches/下的第三方库补丁靠prepare脚本应用跳过或换 npm 会导致行为不一致。做法升级依赖前先把补丁清单过一遍。找不到.spec.ts是正常的。原因前端测试覆盖很薄仓库里只有零星几个 spec 文件。做法改完页面手动回归一遍别指望测试网兜底。CLI 默认生成的 standalone 组件插不进来。原因这个老工程走的是 NgModule 体系standalone: true的组件注册方式不同。做法生成后把standalone: false补上再走模块注册。延伸资料README.md平台整体介绍和后端运行方式ui-ngx/src/app/shared/shared.module.ts共享组件注册总表ui-ngx/src/theme.scss主题变量定义ui-ngx/src/assets/help/en_US/官方内置帮助文档读完这几处改组件、查样式、对行为的线索就齐了。【免费下载链接】thingsboardOpen-source IoT Platform - Device management, data collection, processing and visualization.项目地址: https://gitcode.com/GitHub_Trending/th/thingsboard创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/31 7:05:39

如何快速上手 Cua:让 AI 安全操作 macOS 桌面的完整指南

如何快速上手 Cua:让 AI 安全操作 macOS 桌面的完整指南 【免费下载链接】cua Scale computer-use 2.0 with open-source drivers, cross-OS fleets, and benchmarks for training, evaluation, and data generation. 项目地址: https://gitcode.com/GitHub_Trend…

2026/10/30 15:40:00

数据库安全综合治理:从资产盘点到持续运营

简介:这份PPT系统梳理了数据库安全综合治理的整体思路,适用于安全运维、数据治理及合规建设相关人员。内容从数据库面临的安全风险与挑战切入,覆盖政策法规要求、治理理念与落地方案,并结合金融、酒店等行业泄密事件说明建设必要性…

2026/11/4 12:00:53

NiceLabel试用教程

1运行 NiceLabel10.exe,安装程序验证安装包内容2从下拉列表中选择安装语言,单击确定3NiceLabel 10安装程序对话窗口会自动打开单击接受4选择要安装的模块,点击下一步5定义安装路径并决定是否要与NiceLabel共享使用情况数据匿名使用情况数据将…

2026/11/4 11:55:52

ta-lib-python 算 ATR/NATR:5 分钟画好波动率止损线

ta-lib-python 算 ATR/NATR:5 分钟画好波动率止损线 【免费下载链接】ta-lib-python Python wrapper for TA-Lib (http://ta-lib.org/). 项目地址: https://gitcode.com/gh_mirrors/ta/ta-lib-python 止损线为什么总被扫:先让波动率说话 上周复盘时你发现:止损线设得近…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 0:03:20

AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年…

2026/11/4 0:03:20

从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你…

2026/11/4 0:03:20

32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑