2017-07-24 64 views
0

我很努力嘗試導入Javascript中的類(位於leaflet-m2t.js文件中)是否存在導致m2t未定義的錯誤。該文件正在導入很好,錯誤不在文件中,但在我的代碼中。我希望在解決這個問題在未定義的JavaScript對象中導入類時出錯

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 
     } 

       }] 
}); 

回答

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

不像在Java中,你應該定義要導入的,在這種情況下,傳單的默認出口一些幫助。 JavaScript不會神奇地知道你指的是什麼,這隻適用於全局變量。

如果單張使用ES6出口,你需要做的:

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

或者,如果你已經配置你的應用程序來處理ES6進口:

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

現在我得到一個錯誤r'm2t.tileProvider不是構造函數' –

+0

添加如何將您的類導出到傳單-m2t.js中 –

+0

你是什麼意思導出這個 –

1

確定,所以解決這個問題的發生是代替通過Javascript使用require聲明導入類,我不得不通過HTML標記導入JS類文件<script src="./leaflet-m2t.js"></script>

相關問題