2017-03-02 3 views
1

Kann mir jemand helfen? Ich versuche, ein Faltblatt-Plugin (https://github.com/Leaflet/Leaflet.markercluster) für ionische zu importieren 2Wie installiere ich das Leaflet Plugin für ionic 2

Hier ist der erste Schritt, den ich tat:

npm install leaflet.markercluster --save 

Ich habe Faltblatt wie folgt aus:

import * as L from 'leaflet'; import * as LL from 'leaflet.markercluster';

Und es mit wie folgt:

var markers = LL.markerClusterGroup(); 

Ich habe einen Fehler TypeE rror:

WEBPACK_IMPORTED_MODULE_2_leaflet_markercluster.markerClusterGroup is not a function

Gibt es irgendwelche Möglichkeiten, benutzerdefinierte Plug-in libpack laden? Danke

Antwort

2

Leaflet.markercluster Plugin exportiert sich nicht die "Standard"/UMD Weg.

Wenn Sie es importieren, führt es nur einen Nebeneffekt aus, d. H. Es hängt sich an den globalen Namespace L (Leaflet) an. Es gibt nichts in Ihre Standardimport- oder LL Variable zurück.

Aber Sie sollten es nutzen können, als ob Sie es der „alten Schule“ Art und Weise (dh durch einen <script>-Tag) aufgenommen hatte:

var mcg = L.markerClusterGroup(); 

BTW, beide Leaflet und Leaflet.markercluster führen Nebenwirkungen , so würden Sie sie nur auf diese Weise importieren müssen:

import 'leaflet'; // Creates a global L namespace. 
import 'leaflet.markercluster'; // Attaches L.markerClusterGroup to global L. 
+0

Ja. Wir müssen dies auch installieren, um Typoskriptfehler zu vermeiden. npm installieren --save-dev @ types/leaflet-markercluster – HuyLe

2

Sie müssen Typdeklarationen zusammen mit dem Modul verwenden, wenn Sie einen JavaScript-Modul verwenden. Für leaflet.markercluster sollte es here sein.

Nach

npm install leaflet.markercluster --save 

Do:

npm install --save-dev @types/leaflet-markercluster 

auch sicher, dass Ihre tsconfig.json den Eintrag hat "typeRoots": ["types"],

Nun kann es in Ihrer Klasse importiert werden.

import * as LL from 'leaflet-markercluster';