我正在尝试在点击事件上更新班级的this.bar
属性。
问题是this
函数中的click
与类的this
不同。
export class Chart {
constructor() {
this.bar;
}
showChart() {
...
let group = svg.selectAll('g').data(data).enter().append('g');
group.append('rect')
.on('click', function(d) {
// Here I want `this.bar = d`
});
}
}
答案 0 :(得分:0)
您可以在函数之前的块中将变量设置为this
:
export class Chart {
constructor() {
this.bar;
}
showChart() {
...
let self = this;
let group = svg.selectAll('g').data(data).enter().append('g');
group.append('rect')
.on('click', function(d) {
self.bar=d;
});
}
}
答案 1 :(得分:0)
您应该在this
函数中定义showChart()
:
export class Chart {
constructor() {
this.bar;
}
showChart() {
...
var th = this; // Here you define it
let group = svg.selectAll('g').data(data).enter().append('g');
group.append('rect')
.on('click', function(d) {
th.bar = d;
});
}
}