![](/img/trans.png)
[英]Unable to use this.set() for 'hoveredLabel' in D3 Bar Chart
[英]this.set() not a function when clicking D3 Pie Chart Segments
当我点击我的饼图段以便在我的组件中进一步使用时,我试图设置一个'selectedLabel',但我遇到了'this.set()不是一个我以前没见过的函数'错误。
这个答案表明我试图设置属性的对象不是Ember对象,因此需要使用Ember.set(object, 'property' value)
进行更改,但这会返回null错误。
我同时使用this.get
和this.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.