首页 > 解决方案 > 使用角度 7 访问 d3 回调中的“this”

问题描述

我在 angular 指令中有以下代码,我想访问回调函数中的类级别变量,所以我使用了箭头函数,但“this”仍然没有指向指令。

this.itemRects.selectAll('rect')
            .data(this.visItems, (d) => {
                return d.id + this.x;
            })

我在调试器的返回语句在此处输入图像描述中添加了调试器,它显示指向数据数组。

如何在回调函数中访问指令级别“this”?

标签: javascriptangulartypescript

解决方案


在回调函数中,this指的是回调函数对象。您可以像这样在回调函数之外声明一个变量:

var self = this;

并使用 self 访问回调函数中的类变量,而不是 this。

请检查以下链接以使用箭头符号在回调函数中绑定类变量:如何使用箭头函数(公共类字段)作为类方法?

尝试:

this.itemRects.selectAll('rect')
            .data(this.visItems, (d,x) => {
                return d.id + x;
            })

推荐阅读