Verwenden Sie http://playground-leaflet.rhcloud.com/ oder eine andere jsfiddle-ähnliche Site.
Ich habe versucht, die neueste Version von Merkblatt 1.02 in einer App zu verwenden. Leaflet 1.0.2 funktioniert problemlos, wenn ich die App in reinem Javascript baue. Use Leaflet 1.0.2 in einer Typescript-App bricht ab mit: this.callInitHooks ist keine Funktion, sobald ich ein Control-Plugin wie GeoSearch zur Karte hinzufüge.
Ist Merkblatt 1.0.2 ES6 / Typescript kompatibel?
Es sollte Sie nichts Besonderes daran hindern, Leaflet mit TypeScript (es gibt Definitionen dafür: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/leaflet/index.d.ts) und ES6 zu verwenden.
Fühlen Sie sich frei, ein Beispiel auf http://playground-leaflet.rhcloud.com/ , jsfiddle oder ähnlichem bereitzustellen, wenn Sie der Meinung sind, dass ein bestimmtes Problem mit Leaflet dies verhindert.
Du liegst absolut richtig. Auch ich habe keine Probleme, Leaflet in meiner App mit Typescript zu verwenden. Es sind nur die Plugins, die nicht funktionieren.
Beim Ausführen der Plugins kann kookinit() nicht gefunden werden.
Op 3 Jan. 2017, om 14:57 heeft Per Liedman [email protected] het volgende geschreven:
Es sollte Sie nichts Besonderes daran hindern , Leaflet mit TypeScript zu verwenden (es gibt Definitionen dafür: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/leaflet/index.d.ts
Fühlen Sie sich frei, ein Beispiel auf http://playground-leaflet.rhcloud.com/ http://playground-leaflet.rhcloud.com/ , jsfiddle oder ähnlichem bereitzustellen, wenn Sie der Meinung sind, dass ein bestimmtes Problem mit Leaflet dies verhindert.
—
Sie erhalten dies, weil Sie den Thread verfasst haben.
Antworten Sie direkt auf diese E-Mail, zeigen Sie sie auf GitHub https://github.com/Leaflet/Leaflet/issues/5224#issuecomment-270119252 an oder schalten Sie den Thread stumm https://github.com/notifications/unsubscribe-auth/AAZlpz5axhLON3LzzdbHZIgG4DYx4- Gnks5rOlPMgaJpZM4LXtMC .
Ich denke, Sie sollten ein Problem mit dem fraglichen Plugin melden. Leider hat das Leaflet-Team nur begrenzte Einblicke in Plugins anderer Autoren und auch unsere Zeit und unsere Ressourcen hindern uns daran, Probleme außerhalb des Kerns von Leaflet zu beheben.
Ich weiß nicht, ob das hilft, aber ich hatte gerade das gleiche Problem. Aber es war mein Fehler. Ich habe L.TilelLayer aufgerufen und nicht L.tileLayer() , vielleicht fügen Sie dies der Dokumentation als häufige Fehler hinzu:-( siehe auch https://github.com/mWater/offline-leaflet-map/issues/18
Nur für den Fall, dass jemand den gleichen Fehler hat, anstatt
var positron = L.TileLayer(...)
du solltest schreiben:
var positron = new L.TileLayer(...)
Das neue Keyword fehlt in deinem Playground-Link @pcrombach
Nur um das Problem deutlich zu machen - Leaflet verwendet Klassen und hat auch Factory-Methoden zum Erstellen neuer Objekte. Die Klassen werden großgeschrieben und müssen mit new
aufgerufen werden, während die Factory-Methoden kleingeschrieben sind und nicht sollten. Die Dokumentation verwendet Factory-Methoden, daher kann ich nicht sagen, ob die direkte Instanziierung von Klasseninstanzen unterstützt wird, obwohl die Factorys sowieso einfach new
aufrufen. Die folgenden sind daher gleichwertig, obwohl nur die erste dokumentiert ist.
// Small t, calling factory method
const positron = L.tileLayer(...);
// Capital T, instantiating a new instance directly
const positron = new L.TileLayer(...);
Das gleiche Problem besteht auch bei Reagieren
Hilfreichster Kommentar
Nur für den Fall, dass jemand den gleichen Fehler hat, anstatt
var positron = L.TileLayer(...)
du solltest schreiben:
var positron = new L.TileLayer(...)
Das neue Keyword fehlt in deinem Playground-Link @pcrombach