Hallo,
KONTEXT
Ich habe mehrere AngularJS-Direktiven für Leaflet geschrieben. Eine für die Karte, eine für den Layer, eine für Markierungen und eine für Popups.
Die Winkeldirektive für Popup wartet auf einen Marker, dem zugeordnet werden soll.
.bindPopup(popup)
.on('dragstart', function () {
console.log(dragstart");
})
.on('dragend', function () {
console.log("dragend!");
})
.on('popupopen', function (popup) {
console.log("popup opened !", popup);
});
ERWARTET
Alle Events sollten gefeuert werden.
ERGEBNIS
popupevent
nicht gefeuert? Die anderen werden entlassen.
Prospekt : 0,7,2
Betriebssystem: Windows 7
Browser: Google Chrome 37 & Firefox 32
Nach einigen Tests kam das Problem von unserer benutzerdefinierten Popup-Bibliothek.
Kommentar avez vous fait?
2014-09-22 11:39 GMT+02:00 Pierre Baron [email protected] :
Geschlossen #2907 https://github.com/Leaflet/Leaflet/issues/2907.
—
Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/Leaflet/Leaflet/issues/2907#event -168346883.
Hier ist das Problem, wenn Sie dies tun
var coordinates = {};
var markerOptions = {};
var marker = L.marker(coordinates), markerOptions );
marker.bindPopup("my content");
Die Methode bindPopup()
kann entweder ein String- oder ein Popup-Objekt haben. In diesem Beispiel übergeben wir einen String und die Methode erstellt das richtige Popup. Wenn Sie ein benutzerdefiniertes Popup-Element übergeben, müssen Sie den Marker zuvor an das Popup anhängen. Andernfalls hat das Popup nie sein Quellelement.
Das finale Resultat.
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);
});
Hilfreichster Kommentar
Hier ist das Problem, wenn Sie dies tun
Die Methode
bindPopup()
kann entweder ein String- oder ein Popup-Objekt haben. In diesem Beispiel übergeben wir einen String und die Methode erstellt das richtige Popup. Wenn Sie ein benutzerdefiniertes Popup-Element übergeben, müssen Sie den Marker zuvor an das Popup anhängen. Andernfalls hat das Popup nie sein Quellelement.Das finale Resultat.