d3.js - 如何在 Angular 2 中实现 D3

标签 d3.js angular

我想将此代码从 d3.js 实现到 angular 2 组件,但我不知道如何将 js 文件调用到组件 ts 文件中。我找到了一些折线图代码,其中包含 index.html 和 lineChart.js。如何在 ngAfterViewInitafterViewInit 中调用 javascript。

图表示例 http://plnkr.co/edit/Jijnm8W4sRzAAsLMTvgV?p=preview

所以我想在 ngAfterViewInit 的组件 ts 中调用它。

组件代码如下:

import {Component, Directive, ViewChild, ElementRef, Renderer} from               'angular2/core';
import {bootstrap} from 'angular2/platform/browser';

declare var d3: any;
declare var jQuery: any;
@Directive({

})
class H3 {}


@Component({
  selector: 'my-app',

})
export class D3 {

  constructor(public renderer: Renderer, public el: ElementRef){ }

  ngOnInit() {

  }


  ngAfterViewInit() {



  }

}

最佳答案

你可以使用类似的东西:

declare var d3: any;

export class D3 {
  constructor(public renderer: Renderer, public el: ElementRef){ }

  ngOnInit() {

  }

  ngAfterViewInit() {
    var el:HTMLElement = this.el.nativeElement;
    var root = d3.select(el);

    root.append('svg')
    (...)
  }
}

有关详细信息,请参阅此问题:

关于d3.js - 如何在 Angular 2 中实现 D3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37038467/

相关文章:

javascript - enter() 选择上的 extra select() 究竟做了什么?

d3.js - D3 有向图

javascript - 为什么我获取不到这个 d3.js 文本的 Bounding Box?

javascript - Angular 4如何从.ts文件中的.js文件调用函数

javascript - d3.js - 使用 .selectAll() 根据属性值选择 Node 元素

angular - d3v5 Angular 8 生产模式 - 错误类型错误 : (void 0) is not a function

javascript - 有没有一种聪明的方法可以找到声明指令的位置?

javascript - Material Angular 在打开 mat-select 时滚动到顶部并隐藏

javascript - 让 getStream(stream.io)在 Angular 应用程序中工作

javascript - rxjs/observable/of Angular 10 的替代,以避免警告 CommonJS 或 AMD 依赖项可能导致优化救助