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的一些高級做用,不要擔憂,這個將在之後的博客中說明。異步

相關文章
相關標籤/搜索