Javascript 单击D3饼图分段时,this.set()不是函数

Javascript 单击D3饼图分段时,this.set()不是函数,javascript,d3.js,ember.js,Javascript,D3.js,Ember.js,我试图在单击饼图分段以在组件中进一步使用时设置“selectedLabel”,但遇到了“this.set()不是函数”错误,这是我以前从未见过的 表明我试图设置其属性的对象不是余烬对象,因此需要使用Ember.set(对象,'property'值)更改,但这将返回空错误 我在同一组件中的其他位置同时使用this.get和this.set方法,因此我不确定他的特定对象是否有问题,或者我是否存在范围问题 代码: 让g=svg.selectAll(“弧”) .数据(mpie) .enter().app

我试图在单击饼图分段以在组件中进一步使用时设置“selectedLabel”,但遇到了“this.set()不是函数”错误,这是我以前从未见过的

表明我试图设置其属性的对象不是余烬对象,因此需要使用
Ember.set(对象,'property'值)
更改,但这将返回空错误

我在同一组件中的其他位置同时使用
this.get
this.set方法,因此我不确定他的特定对象是否有问题,或者我是否存在范围问题

代码:

让g=svg.selectAll(“弧”)
.数据(mpie)
.enter().append(“g”)
.attr(“类”、“弧”)
G
.on(“mousemove”,函数(d){
var mouseVal=鼠标(此);
div
.html(“项目:+d.data.count+”
“+”日期:+d.data.label) .style(“左”(event.pageX+12)+“px”) .style(“顶部”(event.pageY-10)+“px”) .style(“不透明度”,1) .样式(“显示”、“块”); }) .on(“mouseout”,函数(){ div.html(“”)样式(“显示”、“无”); }) //尝试设置“selectedLabel”属性 .打开(“单击”,功能(d){ 此.set('selectedLabel',d.data.label) })

控制台在单击功能中记录“this”将为我提供饼图的正确部分。

错误的上下文。如果要在函数中保留上下文,请使用箭头函数,
将是外部对象

```
g.on("click", (d)=> {
    this.set('selectedLabel', d.data.label)
})
```
```
g.on("click", (d)=> {
    this.set('selectedLabel', d.data.label)
})
```