我正在使用Angular2 + d3js繪製圖表。將鼠標移動到圖表上時有一個工具提示。目前,我追加一個「格」爲「體」直接在d3.select("svg").on("mouseover", function(d){...}).
如何將angular2組件添加到d3選擇?
var div = d3.select("body").append("div")
.attr("class", "tooltip")
.style("opacity", 10);
d3.select("svg").on("mouseover", function(d) {
div.transition()
.duration(200)
.style("opacity", .9);
div.html("Tooltip Content Here")
.style("left", (d3.event.pageX) + 10 + "px")
.style("top", (d3.event.pageY - 28) + "px");
});
移動鼠標的時候,因爲我在Angular2使用這個動態生成的innerHTML,我想提示應該被移動到另一個組件/指令分開邏輯。一個組件可能看起來像:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-tooltip',
templateUrl: './tooltip.component.html',
styleUrls: ['./tooltip.component.css']
})
export class TooltipComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
但如何創建組件追加到d3.select(「SVG」)的鼠標懸停功能?或者如何直接在另一個組件中使用'app-tooltip'選擇器? 謝謝!
非常感謝你的回答!因爲現在沒有直接寫入html。一切都是由JavaScript動態創建的。是否有可能將某些html「移出」到其他組件,並直接從JavaScript直接調用這些組件,而不使用app.component.html中的標記「 app-component1>」? –