我的构造函数中具有以下导入:
import { Component, OnInit, Input, OnChanges } from '@angular/core';
import * as moment from 'moment';
import * as Gantt from './frappe-gantt.js';
在我的ngOnInit()
中,我有一个
var gantt = new Gantt.default(`#${this.id}`, this.tasks, { ... })
这会引发以下错误:
_frappe_gantt_frappe_gantt_js__WEBPACK_IMPORTED_MODULE_3 ___ default.a不是构造函数
对此有任何想法吗?
编辑:
打印console.log(Gantt)
启动组件会返回{}
我的frappe-gantt.js
是:
var Gantt = (function () {
'use strict';
...
}
)
谢谢!
答案 0 :(得分:1)
似乎您正在使用“旧版”代码,该代码实际上不导出任何内容,而是执行IIFE,可能是将某些内容分配给全局变量或window
。请尝试以下导入:
import './frappe-gantt.js';
在import的文档中,这被描述为“仅出于副作用导入模块”。这确实假定Gantt
被公开为全局变量。
话虽如此,如果您有权访问此文件,则应该将其转换为实际的TypeScript文件,并像使用Angular项目中的任何其他模块一样导出Gantt
。
希望有帮助!