Как идентифицировать маркер брошюра во время `popupopen`
-
12-12-2019 - |
Вопрос
Когда нажатие маркера, мне нужно выполнить какой-то код, который находит id
, соответствующий щелчке Marker, получает данные из Backend API, затем добавляет новые извлеченные данные на content
всплывающего окна, который откроется.
Единственный способ, способный слушать событие щелчка на маркеру, это
map.on('popupopen', function(e){
// How to retrieve marker?
// eg: Assign an id on creation, retrieve it now during popupopen
};)
.
Как я могу узнать, какой маркер это?Можно ли добавить атрибут id
каждому маркеру, затем извлеките этот генеракодицетагкод во время события id
?
Решение
Объект события содержит атрибут «всплывающего», который имеет личный атрибут, называемый «_Source», который является объектом, который восквернут связан с (то есть маркером).Поскольку _source должен быть частным, это не похоже на правильный путь, но я не уверен, как еще сделать это.
map.on('popupopen', function(e) {
var marker = e.popup._source;
});
. Другие советы
Объекты JavaScript могут иметь какие-либо свойства, определенные на них.Установите Popup.marker на указанный маркер при создании всплывающего окна.Затем вы можете получить доступ к нему позже в обработчике событий.
Чтобы получить удостоверение личности маркера, вы можете использовать этот код:
map.on('popupopen', function(e) {
var marker = e.popup._source.feature.properties.markerid;
});
. Другие ответы не работали, но это делает:
map.on('popupopen', function(e) { alert(e.popup._source._popup._content); });
.
Угадай, что эта библиотека довольно нестабильная ... И я не уверен, что это сложно передавать такую информацию в первую очередь.<пожар>