2017-07-24 32 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>

相关问题