Диаграмма AmCharts XY - Как получить модальное всплывающее окно при нажатии на Angular? - PullRequest
0 голосов
/ 16 апреля 2019

Нам нужно показать модальное окно показа, когда пользователи нажимают на точку данных.

Код, который мы имеем:

  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);
}

enter image description here Мы можем видеть данные журнала в консоли .. но не модальные.Как мы можем решить это?

1 Ответ

1 голос
/ 16 апреля 2019

Код выглядит нормально, однако, как упомянул @yurzui, проблема заключается здесь

bullet.events.on("hit", function (ev) {}

, так как он будет вызываться из другого контекста, там недоступен modalService.Попробуйте использовать функцию стрелки, чтобы сохранить этот контекст. Чтобы исправить это,

bullet.events.on("hit", (ev) => {
    console.log(ev.target._dataItem.dataContext);
    this.modalService.open(this.dialog);
 });
...