Привет,
КОНТЕКСТ
Я написал несколько директив AngularJS для листовки. Один для карты, один для слоя, один для маркеров и один для всплывающих окон.
Директива angular для всплывающего окна ожидает привязки маркера.
.bindPopup(popup)
.on('dragstart', function () {
console.log(dragstart");
})
.on('dragend', function () {
console.log("dragend!");
})
.on('popupopen', function (popup) {
console.log("popup opened !", popup);
});
ОЖИДАЛ
Все события должны быть запущены.
РЕЗУЛЬТАТ
popupevent
не увольняется? Остальные уволены.
Листовка: 0,7,2
ОС: Windows 7
браузер: Google Chrome 37 и Firefox 32
После некоторых тестов проблема возникла в нашей всплывающей пользовательской библиотеке.
комментарий avez vous fait?
2014-09-22 11:39 GMT + 02: 00 Пьер Барон [email protected] :
Закрыт № 2907 https://github.com/Leaflet/Leaflet/issues/2907.
-
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/Leaflet/Leaflet/issues/2907#event -168346883.
Вот в чем проблема, когда вы это делаете
var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );
marker.bindPopup("my content");
Метод bindPopup()
может иметь объект String или Popup. В этом примере мы передаем String, и метод создаст правильное всплывающее окно. Если вы передаете настраиваемый всплывающий элемент, вы должны добавить маркер во всплывающее окно раньше. В противном случае у всплывающего окна никогда не будет исходного элемента.
Окончательное решение.
var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );
var popupOptions = {};
// you have to append the marker on the creation of the popup
// so that the popup element will have the marker source.
var popup = L.popup(popupOptions, marker );
// and this will work !
marker
.bindPopup(popup)
.on('dragstart', function () {
console.log(dragstart");
})
.on('dragend', function () {
console.log("dragend!");
})
.on('popupopen', function (popup) {
console.log("popup opened !", popup);
});
Самый полезный комментарий
Вот в чем проблема, когда вы это делаете
Метод
bindPopup()
может иметь объект String или Popup. В этом примере мы передаем String, и метод создаст правильное всплывающее окно. Если вы передаете настраиваемый всплывающий элемент, вы должны добавить маркер во всплывающее окно раньше. В противном случае у всплывающего окна никогда не будет исходного элемента.Окончательное решение.