使用Angular封装甘特图组件
背景:
Debian 10 + Angular 11
由于官方提供的demo是基于Angular 7的,已经过时了,其他能查到的资料大多是基于Vue的,因此,使用Angular 11 自己总结了一套方法,最终封装的甘特图组件效果如下:
第一步:
npm install dhtmlx-gantt --save
第二步:
ng g c gantt
编辑 gantt.component.ts,添加对甘特图的支持,代码如下:
需要注意的是,要在ngAfterViewInit里初始化dhtmlx的甘特图,而不是在ngOnInit
import {Component, OnInit, ElementRef, ViewChild, ViewEncapsulation, AfterViewInit} from '@angular/core'; import {gantt} from 'dhtmlx-gantt'; @Component({ encapsulation: ViewEncapsulation.None, selector: 'app-gantt', templateUrl: './gantt.component.html', styleUrls: ['./gantt.component.less'] }) export class GanttComponent implements OnInit, AfterViewInit { @ViewChild('gantt_here') ganttContainer: ElementRef; constructor() { } ngOnInit(): void { // gantt.init(this.ganttContainer.nativeElement); // 不要在这里初始化甘特图,会报undefined } ngAfterViewInit(): void { gantt.init(this.ganttContainer.nativeElement); } }
编辑 gantt.component.less,添加甘特图的样式,代码如下:
.gantt-chart{ position: relative; width: 100%; height: 600px; }
编辑 gantt.component.html,添加甘特图的html,代码如下:
<div #ganttContainer class='gantt-chart'></div>
只需要这两步就完成了基于dhtmlx的甘特图组件的封装,但是现在我们自己封装的甘特图组件,还不能正常工作,还需要进行下列操作:
第三步:引入dhtmlx的样式
编辑 angular.json,在styles标签下,添加 [ "node_modules/dhtmlx-gantt/codebase/dhtmlxgantt.css"]
最后,通过Angular-cli重启项目,重启项目,重启项目,重要的事情说三遍!!!
重启项目以后,是不是可以看到Angular封装的甘特图组件的效果了?
别急着开心,这可是万里长征第一步啊...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏