ArcGIS Web客户端开发(附录)关于Dojo的基本知识

附录:关于Dojo的基本知识

    ArcGIS API for JavaScript 是基于Dojo开发的, Dojo包括按钮、格网、树、图表和其他的界面组件,并主要由3部分组成:

1Core-核心包;

2Dijit-主题界面组件;

3DojoX-各种扩展组件,如图表等。   

ArcGIS API for JavaScript 完全支持利用异步模块定义(Asynchronous Module DefinitionAMD)风格的代码创建JavaScript 对象和模块。由于使用DojoJavascript的部分能力进行了封装,因此,要理解其原理,必须理解以下几个Dojo命令,这都属于Dojocore部分,由于Dojo也在不断发展,需注意现行版本与以前的区别。

     1dojo.require: 类似 <script> 标签,用于从特定包中导入JS脚本到当前脚本页。

...

// legacy

dojo.require("esri.map");

// AMD

require(["esri/map", ... ], function(Map, ... ){ ... });

...

因此,如果在后续脚本中用到API的对象或方法等,都应用require先申明一下,如:

    ....

    require([

        "esri/map",

        "esri/tasks/GeometryService",

        "esri/layers/ArcGISTiledMapServiceLayer",

        "esri/layers/FeatureLayer",

        "esri/Color",

        "esri/symbols/SimpleMarkerSymbol",

        "esri/symbols/SimpleLineSymbol",

        "esri/dijit/editing/Editor",

        "esri/dijit/editing/TemplatePicker",

        "esri/config",

        "dojo/i18n!esri/nls/jsapi",

        "dojo/_base/array", "dojo/parser", "dojo/keys",

        "dijit/layout/BorderContainer", "dijit/layout/ContentPane",

        "dojo/domReady!"

      ], function(

         Map, GeometryService,

         ArcGISTiledMapServiceLayer, FeatureLayer,

         Color, SimpleMarkerSymbol, SimpleLineSymbol,

         Editor, TemplatePicker,

         esriConfig, jsapiBundle,

         arrayUtils, parser, keys

       ) {

      //代码区

   });

 

 

     2dojo.ready (or dojo.addOnLoad): 类似 <body οnlοad="">标签. 它帮助注册页面加载时初始化的脚本模块。

...

// legacy

dojo.ready(init);

 

// AMD

require(["dojo/ready"], function(ready){

   ready(function(){

    // This function won't run until the DOM has loaded and other modules that register have run.

   });

});

...

     3dojo.connect: 类似DOM组件的JavaScript 函数Element.addEventListenerElement.attachEvent。 主要用于登记页面中或页面特定组件的事件、消息处理函数。

       ...

// legacy

dojo.connect(myMap, "onLoad", myLoadHandler);

 

// AMD

require(["esri/map", "dojo/on"], function(Map, on) {

  // ...

  on(myMap, "load", callback);

});

...

    4dojo.byId: 类似 JavaScript 函数document.getElementById(id),主要用于通过id获得页面中对象id

 ...  

dojo.byId("myInputField").value = myMap.id;

...

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值