Angular 4アプリでd3.js
と作業しています。私は関数を呼び出そうとしていますが、それは私にERROR TypeError: this.highlightNodes is not a function
というエラーを投げます。this.someFunction(params)はAngular 4の関数ではありません
は、ここで私が働いていた、コードです:
import {Component, OnInit} from '@angular/core';
declare let d3:any;
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
ngOnInit() {
this.networkGraph();
}
networkGraph() {
d3.netJsonGraph("../assets/json/network.json",
{
el: "#randomDiv",
onClickNode: function (url, opts) {
//Here's the error being thrown
this.highlightNodes(url, "nodes", true);
}
}
);
}
highlightNodes(url, type, initial) {
console.log("Its working");
}
}
それがローカルに結合されているため、bind(this)
が支援していない使用します。関数を適切な方法で呼び出す方法としてこれを解決するのを手伝ってください。
あなたは矢印の機能ではありませんクリックハンドラ内のメソッドを呼び出しています。これによりコンテキストが変更されます。 'nClickNodeを試してみてください:(URL、opts)=> {}' – Rajesh
'this'のためにdupeがある必要があります(punが意図しています): – abhishekkannojia