我有一个graph.component.ts
this.cContainer = cytoscape ( {
ready: function(e) {
this._dataService.setResultData();
}
});
但是我明白了
ERROR TypeError: Cannot read property 'setResultData' of undefined
..所以this
似乎未知,看起来是正确的,因为我在回调中,所以this
被称为ready
- 回调。
但是如何从_dataService.setResultData()
- 回调中调用ready()
?
答案 0 :(得分:3)
使用箭头功能从声明上下文中捕获this
。对于function
this
由来电者决定,可能不是您的班级:
this.cContainer = cytoscape ( {
ready: (e) => {
this._dataService.setResultData();
}
});
答案 1 :(得分:1)
this
和胖箭ES6功能之间的function
存在差异。后一版本不会松散this
。因此,您可以使用
ready: e => this._dataService.setResultData();
编辑:它也可能是
ready: function(e) {
this._dataService.setResultData();
}.bind(this)
但这只是丑陋......