当用户点击数据点时,我们需要显示模态窗口。
我们的代码是:
constructor(public dataservice: DataserviceService, private modalService: NgbModal, private router: Router) { }
...
...
bullet.events.on("hit", function (ev) {
console.log(ev.target._dataItem.dataContext);
this.modalService.open(this.dialog);
});
}
public showDialog() {
this.modalService.open(this.dialog);
}
代码看起来很好,但正如@yurzui所说,问题在于此
bullet.events.on("hit", function (ev) {}
因为它将从另一个上下文调用,所以modalService在那里不可用。尝试使用箭头函数,以保留此上下文。要解决此问题,
bullet.events.on("hit", (ev) => {
console.log(ev.target._dataItem.dataContext);
this.modalService.open(this.dialog);
});