Javascript 使用D3.js+;单击具有角度6的事件

Javascript 使用D3.js+;单击具有角度6的事件,javascript,angular,typescript,d3.js,Javascript,Angular,Typescript,D3.js,我试图在Angular中使用d3.js v4创建树/层次数据结构可视化。实际上,我刚刚将这个实现复制到一个组件中,并且遇到了“单击展开/收缩”功能的问题。刷新时,可视化将按预期进行渲染,但单击节点时,会出现以下错误: ERROR TypeError: this.update is not a function Stack trace: ./src/app/components/data-displayer.component.ts/DataDisplayerComponent.prototype

我试图在Angular中使用d3.js v4创建树/层次数据结构可视化。实际上,我刚刚将这个实现复制到一个组件中,并且遇到了“单击展开/收缩”功能的问题。刷新时,可视化将按预期进行渲染,但单击节点时,会出现以下错误:

ERROR TypeError: this.update is not a function
Stack trace:
./src/app/components/data-displayer.component.ts/DataDisplayerComponent.prototype.click@http://localhost:4200/main.js:304:9
contextListener/<@http://localhost:4200/vendor.js:69524:7
./node_modules/zone.js/dist/zone.js/</ZoneDelegate.prototype.invokeTask@http://localhost:4200/polyfills.js:2743:17
onInvokeTask@http://localhost:4200/vendor.js:33761:24
./node_modules/zone.js/dist/zone.js/</ZoneDelegate.prototype.invokeTask@http://localhost:4200/polyfills.js:2742:17
./node_modules/zone.js/dist/zone.js/</Zone.prototype.runTask@http://localhost:4200/polyfills.js:2510:28
./node_modules/zone.js/dist/zone.js/</ZoneTask.invokeTask@http://localhost:4200/polyfills.js:2818:24
invokeTask@http://localhost:4200/polyfills.js:3862:9
globalZoneAwareCallback@http://localhost:4200/polyfills.js:3888:17
core.js:1598

您需要将此绑定到onclick方法:

.on("click", this.click.bind(this));

.on(“单击”,this.click.bind(this))工作完美,谢谢!这对我帮助很大。你应该把它作为答案贴出来。你有没有理由投反对票?这是正确的解决方案。
.on("click", this.click.bind(this));