繁体   English   中英

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

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

当我点击我的饼图段以便在我的组件中进一步使用时,我试图设置一个'selectedLabel',但我遇到了'this.set()不是一个我以前没见过的函数'错误。

这个答案表明我试图设置属性的对象不是Ember对象,因此需要使用Ember.set(object, 'property' value)进行更改,但这会返回null错误。

我同时使用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)
      })

在click函数中记录“this”的控制台为我提供了饼图的正确部分。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM