Кнопка во всплывающем окне Mapbox не выполняет функцию - PullRequest
1 голос
/ 19 июня 2020

Я пытаюсь открыть модальное окно при нажатии кнопки внутри всплывающего окна Mapbox. HTML отображается правильно, но я не уверен, почему функция не выполняется.

let marker = new mapboxgl.Marker(el);
    try {
        marker.setLngLat([eventInfo.location[0], eventInfo.location[1]])
            .setPopup(new mapboxgl.Popup({offset: 32})
                .setHTML('<ion-button (click)="logger()">View Full</ion-button>'))
            .addTo(this.map);
    } catch (e) {
        console.log(e.message);
    }

Выше показано, как я создаю маркер и прикрепляю всплывающее окно. logger() - это функция, которую я ожидаю выполнить.

logger(){
  console.log('hi');
}

1 Ответ

1 голос
/ 19 июня 2020

Я ничего не знаю о работе Ioni c, но я предполагаю, что вы не можете просто передать элементы Ioni c HTML (<ion-button>) в setHTML и ожидать, что он получит полную Иони c лечение. (Так обстоит дело, например, с React и Vue.)

Одним из решений может быть запись обычного raw HTML в setHTML:

.setHTML('<button id="view-full">View Full')
.addTo(this.map);

document.getElementById('view-full').addEventListener('click', logger)

В качестве альтернативы может быть какой-то шаг, чтобы передать ваш HTML через Ioni c, чтобы заставить его вести себя так, как вы ожидаете.

...