私はAngular2 + d3jsを使ってグラフを描いています。マウスをチャート上に移動すると、ツールチップが表示されます。現在、私は直接「ボディ」と「DIV」を追加していると私はAngular2でこれを使用していますのでd3.select("svg").on("mouseover", function(d){...}).
D3選択にangular2コンポーネントを追加するにはどうすればいいですか?
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");
});
にマウスを移動するとき、私は/ツールチップが別のコンポーネントに移動されるべきだと思う動的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によって動的に作成されます。 app.component.htmlで ' app-component1>というタグを使用しないで、一部のhtmlを他のコンポーネントに「移動」してJavaScriptから直接これらのコンポーネントを直接呼び出すことはできますか? –