Нажмите на ссылку внутри листовки. bindpopup не работает

Я пытаюсь добавить ссылку в свой маркер листовки bindpopup, и она не работает, щелчок ничего не делает, на самом деле ничего, никаких событий...:

for (var i = 0; i < this.array.length; i++) {
    let arrayDetails = this.array[i];
    var popupLink='<a (click)="console.log("toto")">See more information</a>';
    var marker = new leaflet.Marker([this.array[i]["lat"],this.array[i]["lng"]], {icon: orangeIcon})
    .addTo(this.map)
    .bindPopup(popupLink);
}

Я также пробовал с функцией, и она не работает. Есть ли у вас какие-либо идеи? (Ссылка должна вести на страницу сведений.)


person Matthieu    schedule 19.03.2019    source источник
comment
Почему вы используете синтаксис <a (click)=...> вместо синтаксиса <a onclick=...>? Это что-то конкретное для ионов?   -  person IvanSanchez    schedule 19.03.2019
comment
Как вы подразумеваете, печаль в том, что Angular вводит свой собственный специфический синтаксис, и люди больше не могут различать.   -  person ghybs    schedule 19.03.2019
comment
Я не могу это подтвердить, но у меня есть сильное подозрение, что Angular не обрабатывает эту строку HTML и используется как есть. Я предлагаю вам запустить это вне Ionic с некоторыми инструментами разработки браузера, чтобы проверить разметку всплывающего окна. Если только leaflet-ngx не делает очень умные вещи с методом L.InteractiveLayer.bindPopup, в чем я сомневаюсь.   -  person IvanSanchez    schedule 19.03.2019


Ответы (1)


Вы должны экранировать кавычки в console.log(), попробуйте так:

for (var i = 0; i < this.array.length; i++) {
    let arrayDetails = this.array[i];
    var popupLink='<a onclick="console.log(\'toto\')">See more information</a>';
    var marker = new leaflet.Marker([this.array[i]["lat"],this.array[i]["lng"]], {icon: orangeIcon})
    .addTo(this.map)
    .bindPopup(popupLink);
}

РЕДАКТИРОВАТЬ: исправить имя метода щелчка

person Sébastien Bousquet    schedule 19.03.2019
comment
Большое спасибо, да, это работает. Я предполагаю, что синтаксис щелчка специфичен для ionic, поэтому, если я хочу, чтобы onclick функционировал, например: onclick = test (arrayDetails), я получаю сообщение об ошибке: Uncaught ReferenceError: test не определен ... У вас есть идеи? - person Matthieu; 19.03.2019
comment
Я не понимаю, где твоя ошибка? При переходе по ссылке у вас появляется это сообщение Uncaught ReferenceError: test is not defined ? Если это так, вам необходимо проверить, существует ли функция test в вашем приложении. - person Sébastien Bousquet; 19.03.2019