尝试使用esrimap

时间:2017-11-09 15:35:19

标签: angularjs dojo esri-maps

Complete error logs

我使用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错误,那将会很有帮助。

1 个答案:

答案 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>

在此之后一切都应该正常工作。