从Angular4组件内的外部Javascript文件调用函数表达式
在我使用Angular4和angularcli开发的web应用程序中,我很难从外部Javascript文件(称为roadmap.js)调用函数表达式。Roadmap.js基于d3.js,可在公共Github回购协议上获得 目前,我有:从Angular4组件内的外部Javascript文件调用函数表达式,javascript,angular,typescript,d3.js,Javascript,Angular,Typescript,D3.js,在我使用Angular4和angularcli开发的web应用程序中,我很难从外部Javascript文件(称为roadmap.js)调用函数表达式。Roadmap.js基于d3.js,可在公共Github回购协议上获得 目前,我有: 通过npm安装d3和@types/d3 调整roadmap.js文件以隔离解析函数后,将其放在my asset文件夹中 在roadmap.component.ts中导入d3 声明了parse,我想在我的组件中调用的函数,作为ts文件顶部的任意变量 在ngOnIni
declare var parse: any;
import { Component, OnInit } from '@angular/core';
import { DataService } from '../../../services/data/data.service';
import * as d3 from 'd3';
import '../../../../assets/js/roadmap.js';
@Component({
selector: 'roadmap',
templateUrl: './roadmap.component.html'
})
export class RoadmapComponent implements OnInit {
constructor(private dataService: DataService){}
ngOnInit() {
new parse(); // Here is the function I'd like to call. It's defined
// in roadmap.js file
}
}
roadmap.js
// Code before this
var parse = function() {
// Tasks
var colors = d3.scale.category20();
// More code
};
// Code after this
我没有收到来自编译器的错误,但在我的浏览器控制台中,我可以看到函数parse未定义-->
错误:未捕获(承诺中):引用错误:未定义解析
ReferenceError:未定义解析
我错过了什么?
N.B:我修改后的roadmap.js版本是在一个经典的html/js网站上运行的,所以问题不应该来自这个js文件。如果你要使用
声明,请取出该文件的import语句,并在索引上包含一个标记import
是用于模块的roadmap.js
不是一个导出东西的模块,它是一个全局函数。谢谢,它有帮助,但路线图不会呈现,因为未定义函数@Mark我很困惑:我应该如何处理这个js文件来调用其中的函数,不必直接在组件中用typescript重写它?你有@AlbanLePape吗?你有没有像@megg说的那样尝试过。在index.html中使用
导入它,通过在浏览器控制台中调用parse
检查roadmap.js是否已加载。