Dojo配置

 

1.引言

      在前面的文章里面咱们介绍了一下AMD规范,什么是AMD规范,咱们用AMD规范能够作什么,咱们还说了Dojo框架对AMD规范进行了实现,进而开发了一系列的模块让咱们进行调用,如今就让咱们来学习一下Dojo框架,看看Dojo到底提供给咱们什么?在博客中我主要引入ArcGIS API的init.js文件(由于ArcGIS API是基于dojo的,主要学会了ArcGIS API 便至关于学会了Dojo)javascript

2.Dojo配置

2.1 Dojo存在默认配置

      话很少说,咱们先看一段很是简单的代码:css

  • 首先引入咱们的init.js文件和相应的css文件
<link rel="stylesheet" type="text/css" href="http://localhost/arcgis_js_api/library/3.17/3.17/dijit/themes/tundra/tundra.css"/> <link rel="stylesheet" type="text/css" href="http://localhost/arcgis_js_api/library/3.17/3.17/esri/css/esri.css" /> <script type="text/Javascript" src="http://localhost/arcgis_js_api/library/3.17/3.17/init.js"></script> 
  • 5
  • 咱们看一段很是熟悉的代码:
require(["dojo/dom"],function(dom){ dom.byId("...") })

 

解释:前面咱们介绍了AMD规范,咱们就应该理解,require其实就是异步加载js文件,可是你们有没有一点疑问呢?dojo框架怎么知道咱们的js文件存放在什么位置呢?dojo框架又要去那里去查找咱们的js文件呢?按照通常的步骤,咱们应该告诉js文件的路径,而后dojo才能够去加载咱们的js文件。按照咱们的思路:dojo必定会存在默认的配置,其中默认的配置会存放dojo框架js文件的路径,而后dojo根据配置去加载js文件。事实上咱们想的是对的,接下来咱们查看一下dojo都有那一写默认的配置呢?java

2.2 查看dojo默认配置

      在本示例中,主要介绍两个模块,一个叫作dojo/_base/config,另一个模块叫作dojo/jsonjson

  • dojo/_base/config用于加载dojo的配置文件(加载进来是一个json对象)
  • dojo/json模块咱们常用,用于json对象和字符串的相互转换
  • 实例中的主要意思是:将dojod配置转换成字符串,用对话框显示出来
<script> require(["dijit/registry", "dojo/parser", "dojo/json", "dojo/_base/config", "dijit/Dialog", "dojo/domReady!"] , function(registry, parser, JSON, config) { parser.parse(); var dialog = registry.byId("dialog"); dialog.set("content", "<pre>" + JSON.stringify(config, null, "\t") + "```"); dialog.show(); }); </script> <div id="dialog" data-dojo-type="dijit/Dialog" data-dojo-props="title: 'dojoConfig / dojo/_base/config'"></div>



  • 运行结果:

这里写图片描述

解释:在默认配置中与模块相关的配置属性主要为:baseUrlpackages,其中baseUrl表明着dojo默认去哪个文件目录下面去加载js文件,packages是一个数组,其中记录着每个模块所对应的路径。好比咱们require(["dojo/dom"],function(){}),即是去查找文件:api

这里写图片描述

其中C:\inetpub\wwwroot\表明着网站的根目录,也就是http://localhost,如今你们应该明白dojo/dom其实是加载:http://localhost/arcgis_js_api/library/3.17/3.17/dojo/dom.js了吗?可能你们仍是有一些疑问这个路径是怎么获得的呢?如今我就给你们描述一下这个过程:require加载dojo/dom这个模块,首先dojo先去配置文件的packages(查找name属性)中查找,若是没有找到,那么就会去baseUrl查找,若是尚未找到,报错。数组

2.3 修改dojo配置

      咱们经过上一实例发现dojo存在着默认配置,那么问题来了?咱们如何添加咱们本身的配置呢?或者说如何去修改dojo的默认配置呢?dojo框架提供给咱们一个对象叫作dojoConfig,咱们能够经过设置该对象修改dojo的默认配置,接下来咱们添加一个咱们本身的配置项:框架

var dojoConfig={ myattr:"12345"//这是我随便写的 }
  • 1
  • 2
  • 3
  • 运行结果

这里写图片描述

解释:由于我给dojoConfig对象添加了一个属性叫作myattr,因此该属性被添加到了dojo的配置文件中,须要注意的属dojoConfig必须在init文件加载以前设置,否则该对象设置无效,如今你们可能又有一些疑问:我随便添加了一个属性叫作myattr,这个属性没有什么做用啊?是的!若是添加一些无心义的属性确实是没有任何做用,可是在本实例中咱们能够看到一点,咱们能够在dojoConfig中设置咱们自定义的属性,该属性是全局的,咱们能够经过dojo/_base/config模块在任意的地方调用咱们全局的属性,这对于咱们开发有着相当重要的做用dom

3.总结

      在本篇博客中主要简单的介绍了一下dojo的配置,以及如何添加咱们本身的配置项。可能你们还不是很懂dojoConfig的一些高级做用,不要担忧,这个将在之后的博客中说明。异步

相关文章
相关标签/搜索