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

this.set() not a function when clicking D3 Pie Chart Segments

当我点击我的饼图段以便在我的组件中进一步使用时,我试图设置一个 'selectedLabel',但是我 运行 进入了一个我没有看到的 'this.set() is not a function' 错误之前。

This answer 表明我试图为其设置 属性 的对象不是 Ember 对象,因此需要使用 Ember.set(object, 'property' value) 进行更改,但是这个 returns 一个空错误。

我在同一个组件的其他地方同时使用 this.getthis.set methods,所以我不确定他的特定对象是否有问题,或者我是否有范围界定问题。

代码:

let g = svg.selectAll("arc")
  .data(mpie)
  .enter().append("g")
  .attr("class", "arc")

  g
  .on("mousemove", function(d) {
    var mouseVal = mouse(this);
    div
      .html("Items: " + d.data.count + "</br>" + "Date: " + d.data.label)
      .style("left", (event.pageX + 12) + "px")
      .style("top", (event.pageY - 10) + "px")
      .style("opacity", 1)
      .style("display", "block");
  })
  .on("mouseout", function() {
    div.html(" ").style("display", "none");
  })

//attempt to set 'selectedLabel' property
      .on("click", function(d) {
        this.set('selectedLabel', d.data.label)
      })

单击功能中的控制台日志记录 'this' 为我提供了饼图的正确部分。

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

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