Frappe-Gantt-不是构造函数

时间:2019-09-16 14:12:35

标签: angular

我的构造函数中具有以下导入:

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';
     ...
    }
)

谢谢!

1 个答案:

答案 0 :(得分:1)

似乎您正在使用“旧版”代码,该代码实际上不导出任何内容,而是执行IIFE,可能是将某些内容分配给全局变量或window。请尝试以下导入:

import './frappe-gantt.js';

import的文档中,这被描述为“仅出于副作用导入模块”。这确实假定Gantt被公开为全局变量。

话虽如此,如果您有权访问此文件,则应该将其转换为实际的TypeScript文件,并像使用Angular项目中的任何其他模块一样导出Gantt

希望有帮助!