2017-11-09 4 views
0

Complete error logsなっmultipleDefine(dojoloader)エラー私は角1.6を使用しています

をesrimap使用しようと積載esrimapのために4.4 argisとき。 'angular-esri-map.js'の読み込みに 'defer'キーワードを使用しましたが、動作しませんでした。 SPAアプリケーションでesri-mapを正常に表示できました。しかし、私がエンタープライズアプリケーションに統合しようとしているのは、ちょうど休憩です。

私は画像に続いて我々のアプリケーション=>

'ngAnimate', 
    'ngCookies', 
    'ui.router', 
    'esri.map', 
    'ngSanitize', 
    'ngTouch', 
    'angular-carousel', 
    'd3'  

に追加した依存関係に続い=>

 <script src="assets/angular.js"></script> 
     <script src="https://js.arcgis.com/4.4/"></script> 
     <script defer src="assets/angular-esri-map.js"></script> 

方法を以下にJSをロードしていますが、それは=を破っているログ>

を示し

誰かがこの 'multipleDefine' dojoloaderエラーを修正する手助けをすれば、大きな助けになるでしょう。

答えて

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> 

:すべてのスクリプトがロードされるとき はその後、このスクリプトを追加します。

関連する問題