新版本中的 D3 活动

Muh*_*uhy 6 javascript d3.js typescript angular

我写了以下片段:

ngAfterViewInit() {
    var svg = d3
      .select("svg")
      .call(d3.zoom().on("zoom", () => {
        svg.attr("transform", d3.event.transform)
      }))
      .append("g")
}
Run Code Online (Sandbox Code Playgroud)

我知道它d3.event在新版本中已被删除,但是阅读有关如何处理回调中的事件的文档并不能让我理解如何修改它......

有人可以用像我这样的新手可以理解的简单方式向我解释这一点以及如何修复它以使其工作吗?谢谢

Mic*_*l D 5

本迁移指南中,d3.event.transform必须替换为以下内容

ngAfterViewInit() {
  let svg = d3                                // <-- I'd suggest using `let` instead of `var`
    .select("svg")
    .call(d3.zoom().on("zoom", (event) => {   // <-- `event` argument
      svg.attr("transform", event.transform); // <-- use `event` here
    }))
    .append("g");
}
Run Code Online (Sandbox Code Playgroud)