我正在尝试将Frappe Gantt库与Angular 5集成。这是官方文档https://frappe.io/gantt,但是我无法找到出路,因为打字稿在组件中显示错误,提示“无法使用'new'当我执行时,其类型缺少调用或构造签名的表达式。
frappeGantt = new Gantt("#gantt", this.tasks);
现在frappe.min.js已经导入到我的index.html中,但是我需要向frappeGantt分配新的甘特对象。有没有办法解决这个问题?
答案 0 :(得分:0)
我设法在Angular 10中解决,也许对您有用:
有必要设置一个标志,即使该模块默认情况下不可导出,该标志也允许默认情况下导入。
我的组件看起来像这样:
import Gantt from 'frappe-gantt';
import {Component, ViewChild, ElementRef, OnInit} from '@ angular / core';
@Component ({
selector: 'myGantt',
templateUrl: './gantt.component.html',
styleUrls: ['./gantt.component.scss'],
})
export class GanttComponent implements OnInit {
@ViewChild ('gantt') ganttEl: ElementRef;
gantt;
tasks = [
{
id: 'Task 1',
name: 'Redesign website',
start: '2016-12-28',
end: '2016-12-31',
progress: 20,
dependencies: 'Task 2, Task 3',
},
];
ngOnInit () {
this.gantt = new Gantt ('# gantt', this.tasks);
}
}
该标志已添加到tsconfig.json文件:
"allowSyntheticDefaultImports": true