如何在Angular 2中正确地重用D3.js组件?

如何在Angular 2中正确地重用D3.js组件?

问题描述:

我想重用角2如何在Angular 2中正确地重用D3.js组件?

@Component({ 
    selector: 'child-cmp', 
    template: ` 
    <div> 
     <svg class="chart"></svg> 
    </div> 
    ` 
}) 
export class ChildCmp { 
    ngOnInit() { 
    let chart = d3.select(".chart") 
     .append("g") 
     .append("rect") 
     .attr("width", 50) 
     .attr("height", 100); 
    } 
} 

http://plnkr.co/edit/PnJfFJ7sOZIxehs2LHNh?p=preview

这D3.js组件但是,您可以在这个演示中看到,两个矩形不能表现出很好的一起。

如何正确重用这些D3.js组件?由于

我会尝试这样的事情:

@Component({ 
    selector: 'child-cmp', 
    template: ` 
    <div> 
     <svg class="chart"></svg> 
    </div> 
    ` 
}) 
export class ChildCmp { 
    constructor(private eltRef:ElementRef) {} 

    ngAfterViewInit() { 
    let chart = d3.select(this.eltRef.nativeElement) 
     .select('.chart') 
     .append("g") 
     .append("rect") 
     .attr("width", 50) 
     .attr("height", 100); 
    } 
} 

看到这个plunkr:http://plnkr.co/edit/lqFGoEvnvGw4PvCs8OWg?p=preview

+0

谢谢,Thierry,但您提供的链接确实显示任何矩形,可能是错误的链接?我会很快回来。 –

+0

哎呀,我忘了救plunkr :-(现在应该会更好... –

+0

谢谢,作品完美! –