发布时间:2026/9/6 21:13:18
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/9/6 21:13:18

如何快速上手 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/9/6 21:13:18

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

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

2026/9/6 22:18:23

WeKnora 知识图谱:把文档关联讲清楚的完整指南

WeKnora 知识图谱:把文档关联讲清楚的完整指南 【免费下载链接】WeKnora Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki. 项目地址: https://gitcode.com/GitHub_T…

2026/9/6 22:18:23

SVM-CNN-LSTM股票预测模型:特征提取、残差修正与MATLAB GUI实现

简介:面向金融预测与量化交易研究者的MATLAB项目实例,基于SVM-CNN-LSTM混合模型实现股票价格预测。资源整合支持向量机、卷积神经网络与长短期记忆网络的优势,通过CNN自动提取金融数据局部特征、LSTM捕捉长期依赖关系、SVM完成最终回归预测&a…

2026/9/6 22:18:23

煤质化验工实操考核评分标准全解析:从采样到发热量测定要点

简介:这份PDF资料为煤质化验工专业技能考核提供了完整的操作规范与评分依据,适合煤质化验岗位人员、技能鉴定培训学员及现场考核员使用。内容围绕国标GB/T212-2008规定的挥发分测定项目,从设备预热、器皿检查、称量搅拌到马弗炉操作、冷却称量…

2026/9/6 22:18:23

PyTorch实现BERT+LSTM社交媒体舆情情感分析与热点预测

简介:这份《社交媒体舆情分析:基于PyTorch的BERT-LSTM情感计算与热点事件预测》PDF文档,面向对舆情分析、自然语言处理和深度学习感兴趣的读者,系统讲解如何利用PyTorch实现BERT与LSTM融合模型,完成情感计算与热点事件…

2026/9/6 22:13:23

STM32+TMC2209步进电机精确定位:S型加减速与失步检测实战

简介:关于STM32F103与TMC2209步进电机S型加减速精确定位系统的完整技术文档,面向具备嵌入式C语言基础、熟悉STM32开发的工程师、电子爱好者,以及3D打印、数控雕刻机、机器人关节等运动控制领域研发人员,用于解决电机启停失步、振动…

2026/9/6 0:06:59

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/6 0:06:59

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/6 0:06:59

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/6 0:06:59

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/6 0:06:59

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/6 0:06:59

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/6 11:40:10

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/6 19:33:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/6 10:19:40

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…