Wyb*_*tra 5 d3.js typescript d3.js-v4
我正在使用D3库来移动维恩图中的项目.当我停止拖动时,我想确定图表中项目的位置.
item.call(d3.drag()
.on("start", this.dragstarted)
.on("drag", this.dragged)
.on("end", this.dragended)
);
Run Code Online (Sandbox Code Playgroud)
这些是我在拖动开始时调用的函数,正在进行和结束.
dragended(d: TCMemberScenario, i: number) {
d3.select(this).classed("active", false);
d.calculateRoles();
this.save();
}
Run Code Online (Sandbox Code Playgroud)
这是拖动结束时调用的函数.我更新了图中的一些内容,然后我想调用save方法.这是班上的另一种方法.但是,此变量引用D3对象而不是类的实例.所以我得到一个"未捕获的TypeError:无法读取属性'保存'未定义"
我怎样才能从dragended方法中调用我班级的另一种方法?
要保持对"this"的引用,请使用以下箭头函数:
item.call(d3.drag()
.on("start", (d, i) => this.dragstarted(d,i))
.on("drag", (d, i) => this.dragged(d, i))
.on("end", (d, i) => this.dragended(d, i))
);
Run Code Online (Sandbox Code Playgroud)