Używam Angular.JS i Leaflet.JS dla mapy w mojej lokalizacji, która ma znaczniki map z powiązanymi do nich wyskakującymi okienek popup. Muszę użyć rozpiętości z dwiema różnymi ikonami (jedną pokazaną w kodzie poniżej), którą możesz kliknąć, aby wywołać różne funkcje, i ng-class, aby zmienić klasę, jeśli spełnione są określone warunki. To jest mój kod:Jak korzystać z dyrektyw kątowych ng-click i ng-class wewnątrz Okienko znacznika popup wyskakujące
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"><i class="icon-sign-blank icon-stack-base"></i><i class="icon-thumbs-up"></i></span></span></span>');
Jednak kiedy sprawdzać element uzyskać to:
<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"><i class="icon-sign-blank icon-stack-base"></i><i class="icon-thumbs-up"></i></span></span></span>
NG-click powinien wysłać tę funkcję zarówno konkretnego przedmiotu oraz tablicę obiektów, ale gdy klikam ikona nic się nie dzieje. W moich badaniach znalazłem, że wyskakujące okienko zapobiega rozprzestrzenianiu się zdarzenia (more info, ale nie jestem pewien, jak go zastąpić lub naprawić, aby działało z kątem.) Czy ktoś ma pomysł, jak to zrobić?
AKTUALIZACJA :
Od nG-click/klasa ocenić ciąg Naprawiłem zmienne być tak:
$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"><i class="icon-sign-blank icon-stack-base"></i><i class="icon-thumbs-up"></i></span></span></span>');
html następnie wychodzi poprawnie:
<span ng-class="thumbsUpClass(item)" ng-click="addChoice(item,set)"><span class="popup-container"><span class="icon-stack thumbs-up-stack"><i class="icon-sign-blank icon-stack-base"></i><i class="icon-thumbs-up"></i></span></span></span>
Jednak po kliknięciu ikony nic się nie dzieje i nie wygląda na to, że wywoływane są funkcje. Ktoś ma jakąś wskazówkę, dlaczego tak się stało?
Postaraj się, aby przykłady kodu pasować do szerokości strony, więc nie trzeba przewijać lub wykorzystanie plunkr, to jest nieczytelne bez dużego wysiłku. – Maarten