2017-07-24 8 views
0

Ich habe Schwierigkeiten zu versuchen, eine Klasse in Javascript zu importieren (in der leaflet-m2t.js Datei befindet) gibt es einen Fehler immer geworfen m2t ist nicht definiert. Die Datei wird gerade importiert, und der Fehler liegt nicht in der Datei, sondern in meinem Code. Ich würde etwas Hilfe schätzen dieses ProblemFehler beim Importieren der Klasse in JavaScript-Objekt nicht definiert

require('./leaflet-m2t.js') 
$scope.tileProvider = new m2t.tileProvider({ 
    map: map, 
    tileUrl: '/m2t', 
    defaultLayer: 'Dark', 
    tileLayers: [], 
    outlineLayers: ['Light', { 
     name: 'Dark', 
     style: { 
      "color": "#737373", 
      "weight": 1, 
      "fillOpacity": 1, 
      "fillColor": "#0d0d0d", 
      'backgroundColor': '#242425', 
      'clickable': false 
     } 

       }] 
}); 

Antwort

2
var m2t = require('./leaflet-m2t.js'); 

Anders als in Java in Adressierung sollten Sie definieren, was Sie importieren, in diesem Fall die Standard-Export des Blättchens. JavaScript versteht auf magische Weise nicht, worauf Sie sich beziehen, dies funktioniert nur für globale Variablen.

Wenn Faltblatt es6 Exporte verwendet werden Sie tun müssen:

var m2t = require('./leaflet-m2t.js').default; 

Oder wenn Sie Ihre App es6 Importe zu handhaben konfiguriert:

import m2t from './leaflet-m2t.js'; 
+0

jetzt bekomme ich einen Fehler r 'm2t.tileProvider ist kein Konstruktor' –

+0

Fügen Sie hinzu, wie Sie Ihre Klasse exportieren in: leaflet-m2t.js –

+0

Was meinen Sie mit dem Export dieser –

1

Ok, so dass die Lösung für dieses Problem geschah Be statt die Klasse über Javascript mit der require Anweisung zu importieren, musste ich die JS-Class-Datei über ein HTML-Tag <script src="./leaflet-m2t.js"></script>

importieren
Verwandte Themen