我使用angular 1.6和argis 4.4来加载esri-map。 我使用'defer'关键字来加载'angular-esri-map.js',但它没有用。 我能够在SPA应用程序中成功渲染esri-map。但是当我试图将它集成到我们的企业应用程序中时,只是休息。
我按以下方式加载js =>
<script src="assets/angular.js"></script>
<script src="https://js.arcgis.com/4.4/"></script>
<script defer src="assets/angular-esri-map.js"></script>
我在应用程序中添加了以下依赖项=&gt;
'ngAnimate',
'ngCookies',
'ui.router',
'esri.map',
'ngSanitize',
'ngTouch',
'angular-carousel',
'd3'
下面的图片显示了它正在破坏的日志=&gt;
如果有人帮助解决这个'multipleDefine'dojoloader错误,那将会很有帮助。
答案 0 :(得分:0)
我认为dojo AMD加载器与另一个加载器存在冲突。但有一种方法可以防止这种情况发生。以下代码将冲突的Dojo amd加载器“移动”到另一个临时方法,并且在加载所有其他脚本之后,这将被恢复。
在页面上(头部)加载dojo.js后立即添加:
<script type="text/javascript">if (typeof define === 'function' && define.amd) {if(define.amd.vendor =='dojotoolkit.org'){define._amd = define.amd;delete define.amd;}</script>
然后加载您在问题中添加的所有其他脚本。 然后,当加载所有脚本时,添加以下脚本:
<script type="text/javascript">if (typeof define === 'function' && define._amd) {define.amd = define._amd; delete define._amd;}</script>
在此之后一切都应该正常工作。