以下方法适用于Angular 5 CLI。
为了简单起见,我使用了由oliverbinns创建和提供的类似d3gauge.js演示 - 您可以轻松在Github上找到它。
所以首先,我只是在与assets文件夹相同的级别上创建了一个名为externalJS的新文件夹。然后我复制了以下两个.js文件。
我随后确保在主要的index.html文件中声明了这两个链接指令。
<script src="./externalJS/d3.v3.min.js"></script>
<script src="./externalJS/d3gauge.js"></script>
然后我在 gauge.component.ts 组件中添加了类似的代码,如下所示:
import { Component, OnInit } from '@angular/core';
declare var d3gauge:any; <----- !
declare var drawGauge: any; <-----!
@Component({
selector: 'app-gauge',
templateUrl: './gauge.component.html'
})
export class GaugeComponent implements OnInit {
constructor() { }
ngOnInit() {
this.createD3Gauge();
}
createD3Gauge() {
let gauges = []
document.addEventListener("DOMContentLoaded", function (event) {
let opt = {
gaugeRadius: 160,
minVal: 0,
maxVal: 100,
needleVal: Math.round(30),
tickSpaceMinVal: 1,
tickSpaceMajVal: 10,
divID: "gaugeBox",
gaugeUnits: "%"
}
gauges[0] = new drawGauge(opt);
});
}
}
最后,我只需在相应的gauge.component.html中添加一个div。
<div id="gaugeBox"></div>
et voilà!:)