Как использовать угловые директивы ng-click и ng-class во всплывающем маркере Leaflet

m используя Angular.JS и Leaflet.JS для карты в моем местоположении, в которой есть маркеры карты с привязанными к ним всплывающими окнами. Мне нужно использовать диапазон с двумя разными значками (один показан в коде ниже), который вы можете щелкнуть, чтобы вызвать разные функции, и с помощью ng-class, чтобы изменить класс, если выполняются определенные условия. Это мой код:

var marker = L.marker([51.5, -0.09], {icon: blueIcon}).bindPopup('<br><span ng-class="thumbsUpClass(' + hotelsSelectedDates[i]['hotels'][s] + ')" ng-click="addChoice(' + hotelsSelectedDates[i]['hotels'][s] + ',' + hotels + ')"><span class="popup-container"><span class="icon-stack thumbs-up-stack"></span></span></span>');

Однако, когда я проверяю элемент, я получаю это:

<span ng-class="thumbsUpClass([object Object])" ng-click="addChoice([object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object])"><span class="popup-container"><span class="icon-stack thumbs-up-stack"></span></span></span>

Ng-click должен послать эту функцию как конкретному объекту, так и массиву объектов, но когда я нажимаю на иконку, ничего не происходит. В своем исследовании я обнаружил, что всплывающее окно предотвращает распространение событий (больше информации но я'Я не уверен, как это переопределить или исправить, чтобы заставить его работать с угловым. Будет ли у кого-нибудь представление о том, как этого добиться?

ОБНОВИТЬ:

Так как ng-click / class оценивает строку, я исправил переменные так:

$scope.item = hotelsSelectedDates[i]['hotels'][s]
$scope.set = hotels
var marker = L.marker([51.5, -0.09], {icon: blueIcon}).bindPopup('<br><span ng-class="thumbsUpClass(item)" ng-click="addChoice(item,set)"><span class="popup-container"><span class="icon-stack thumbs-up-stack"></span></span></span>');

HTML тогда выходит правильно:

<span ng-class="thumbsUpClass(item)" ng-click="addChoice(item,set)"><span class="popup-container"><span class="icon-stack thumbs-up-stack"></span></span></span>

Однако, когда я нажимаю на значок, ничего не происходит, и это неНе похоже, что функции вызываются. Кто-нибудь знает, почему это произойдет?

Ответы на вопрос(6)

Ваш ответ на вопрос