2013-10-10 18 views
7

मैं ArcGIS 3.5 जावास्क्रिप्ट एपीआई और RequireJSArcGIS Requirejs

मैं इस कोड का उपयोग इसे लागू उपयोग कर रहा हूँ के साथ 3.5 मुद्दा:

requirejs.config({ 
    baseUrl: "js/", 
    paths: { 
     underscore: 'libs/underscore', 
     tpl: 'tpl', 
     backbone: 'libs/backbone', 
     text: 'libs/text', 
     domReady: 'libs/domReady' 
    }, 
    packages: [ 
       { 
        name: 'dojo', 
        location: "http://serverapi.arcgisonline.com/jsapi/arcgis/3.5compact/js/dojo/dojo/" 
       }, 
       { 
        name: 'dojox', 
        location: "http://serverapi.arcgisonline.com/jsapi/arcgis/3.5compact/js/dojo/dojox" 
       }, 
       { 
        name: 'dijit', 
        location: "http://serverapi.arcgisonline.com/jsapi/arcgis/3.5compact/js/dojo/dijit" 
       }, 
       { 
        name: 'esri', 
        location: "http://serverapi.arcgisonline.com/jsapi/arcgis/3.5compact/js/esri" 
       } 
      ], 
    shim: { 
     'backbone': { 
      //These script dependencies should be loaded before loading backbone.js 
      deps: ['underscore'], 
      //Once loaded, use the global 'Backbone' as the module value. 
      exports: 'Backbone' 
     }, 
     'underscore': { 
      exports: '_' 
     } 
    } 
}); 

और यह प्रदर्शित करता है:

<script> 
    var map; 
    require(["esri/map", "dojo/domReady!"], function(Map) { 
    map = new Map("mapDiv", { 
     center: [-96.571541, 39.155622], 
     zoom: 3, 
     basemap: "streets" 
    }); 
    }); 
    }); 
</script> 
इस के साथ

विन्यास RequireJS निम्न त्रुटि:

मुझे यह त्रुटि है

**Uncaught TypeError: Object function(){} has no method 'add' has.js:8 

Uncaught Error: Load timeout for modules: dojo/domReady!_unnormalized2,dojo/has!dom-addeventlistener?:./aspect_unnormalized3,dojo/i18n!dojo/cldr/nls/number_unnormalized4,dojo/i18n!dojo/cldr/nls/gregorian_unnormalized5,dojo/i18n!esri/nls/jsapi_unnormalized6,dojox/gfx/renderer!_unnormalized7,dojo/selector/_loader!default_unnormalized8,dojo/has!host-browser?dom-addeventlistener?:../on:_unnormalized9** 

क्या किसी के पास कोई स्पष्टीकरण है, या इसे हल करने के बारे में कोई विचार है?

उत्तर

3

आर्कजीआईएस जावास्क्रिप्ट एपीआई स्वचालित रूप से डोजो फ्रेमवर्क लोड करता है जो इसे अपने स्वयं के एएमडी लोडर को परिभाषित करता है। यहां, यह RequJs के लोडर का उपयोग करने का प्रयास कर रहा है क्योंकि यह पहले से मौजूद होने पर फ़ंक्शंस को प्रतिस्थापित नहीं करता है। हालांकि, दोजो कार्यान्वयन में कुछ गैर-मानक विधियां हैं जो इसके कुछ कार्यों से जुड़ी हैं (जैसे कि इस उदाहरण में 'है', मुझे लगता है कि 'एड' किसी और के पोस्ट हो सकता है), जो डोजो के मॉड्यूल आंतरिक रूप से उपयोग करते हैं। इसका मतलब है कि काम करने के लिए डोजो के लिए, आपको वर्तमान में डोजो के लोडर का उपयोग करने की आवश्यकता है। इसके दुष्प्रभाव के रूप में, आर्कजीआईएस जेएस एपीआई वर्तमान में RequJs के साथ असंगत है।

http://requirejs.org/docs/dojo.html में आवश्यकताजे से थोड़ी सी जानकारी है (हालांकि जुड़ा हुआ टिकट गुमराह कर रहा है क्योंकि यह 'निश्चित' है, उस विशिष्ट कोड ब्लॉक को संदर्भित करता है, न कि फ्रेमवर्क-व्यापी समस्या)।

Using requirejs with dojo 1.9.1 एक समान समस्या है। ऐसा लगता है कि उन्होंने डोजो के स्रोत/एसडीके संस्करण का उपयोग करके इसे हल किया है, लेकिन मुझे लगता है कि आर्कजीआईएस जावास्क्रिप्ट एपीआई के साथ काम करते समय यह असंभव है।

यह भविष्य में डोजो/आर्कजीआईएस जेएस रिलीज़ के साथ स्वयं को हल करना चाहिए।

संबंधित मुद्दे