dojo 加载自定义module的路径问题
因为最近想学学ArcGIS API for JavaScript ,翻了下ESRI的官网guide,发现其是基于dojo框架的,看了两页实在看不懂,于是先来熟悉下dojo框架。人蠢不能怪社会%>_<%,可能只是别人入门时甚至没当回事的问题,在我这硬是弄了好久才弄明白,就是dojo configuration中的package路径问题。
以上废话
假设我的文件目录结构如下:
/
	index.html
	dojo-release-1.10.4
		/dojo
			/dojo.js
		/dojox
		/dijit
	mytest
		/myModule.js
当我需要在loader里load自定义的myModule该怎么做?
经实测,这样写是可以的:
<script type="text/javascript">
		var dojoConfig={
			baseUrl:"",
			tlmSiblingOfDojo: false,
			packages:[
				{"name":"dojo","location":'dojo-release-1.10.4/dojo'},
				{"name":"mytest","location":"mytest",main:"myModule"},
			]
		};
</script>
<script data-dojo-config="async: true" src="dojo-release-1.10.4/dojo/dojo.js"></script>
<script type="text/javascript">
require(
	['mytest/myModule'],function(myModule){
		//do something with myModule
	})
	</script>
需说明:
1.dojoConfig 必须set在加载dojo.js之前,否则在控制台调试时会发现报错。
2.baseUrl是什么?
默认值是dojo.js所在文件夹的路径,此例中即dojo-release-1.10.4/
所有的package路径都是相对于baseUrl,例如:如果我这样设置baseUrl:"/myfolder/",那么当我加载模块“mytest/myModule”,loader将会从下面路径去加载:
/myfolder/mytest/myModule.js
3.tlmSiblingOfDojo是什么?
默认值是true,此时loader将从dojo.js所在文件夹的同级文件夹中加载模块
4.packages
一个array,包含多个module及每个module对应的features。
※ name:the name of the package. 即包含了自定义module js文件的文件夹名,如此例中的“my”。
※ location:the location of the package. 可以是基于baseUrl的相对路径也可以是绝对路径。
采取相对路径时,当我require“mytest/myModule”, loader将从形如下面的路径加载module:
baseUrl+mytest的location+”/myModule.js
※ main:默认值是main.js。用于require package本身时告诉loader该去加载什么文件。例如,当我require “mytest”而不是“mytest/myModule”时,loader依然知道去load myModule.js。
另一种情况,当直接require一个没有在packages里define过的package时,如“anotherTest”时,loader将会尝试去加载下面的文件:
baseUrl+anotherTest.js
dojo 加载自定义module的路径问题的更多相关文章
- spring boot 加载自定义log4j 文件路径
		spring boot 使用log4j 打印时,需首先去除自带 Logger ,然后加入log4j 依赖 <dependencies> <!-- https://mvnreposit ... 
- [Yii2.0] 以Yii 2.0风格加载自定义类或命名空间 [配置使用Yii2 autoloader]
		Yii 2.0最显著的特征之一就是引入了命名空间,因此对于自定义类的引入方式也同之前有所不同.这篇文章讨论一下如何利用Yii 2.0的自动加载机制,向系统中引入自定义类和命名空间.本文旨在抛砖引玉,如 ... 
- __import__ 与动态加载 python module
		原文出处: koala bear Direct use of __import__() is rare, except in cases where you want to import a m ... 
- 基于.net 的加载自定义配置-误操作
		有时候 需要 将程序加载自定义的配置文件,除了自己写解析xml文件.内置的ConfigutionManager对象 是个不错的选项. 按照 app.config 的方式,做一个副本.然后从你的配置文件 ... 
- PIE SDK加载自定义服务数据
		1.功能简介 自定义服务数据,将符合要求的矢量数据和栅格数据集等数据以服务的方式发布,将数据存储在某服务器中,在有网络的情况下可以根据URL就可以访问,比较常见的服务数据类型的有ArcGIS Serv ... 
- PIE加载自定义服务数据详细介绍
		这段时间我一直在研究如何用PIE加载在线地图服务,遇到了许多问题,多亏了技术员小姐姐的帮助,才让我能正确加载ArcGIS Online在线服务.天地图在线地图和谷歌在线地图.我是根据博客园PIE官方博 ... 
- SpringBoot系列——加载自定义配置文件
		前言 SpringBoot启动时默认加载bootstrap.properties或bootstrap.yml(这两个优先级最高).application.properties或application. ... 
- TensorFlow2.0(10):加载自定义图片数据集到Dataset
		.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ... 
- JVM类加载器是否可以加载自定义的String
		前言 曾经有一次,面试官问到类加载机制,相信大多数小伙伴都可以答上来双亲委派机制,也都知道JVM出于安全性的考虑,全限定类名相同的String是不能被加载的.但是如果加载了,会出现什么样的结果呢?异常 ... 
随机推荐
- How do you add? UVA - 10943(组合数的隔板法!!)
			题意: 把K个不超过N的非负整数加起来,使它们的和为N,有多少种方法? 隔板法...不会的可以买一本高中数学知识清单...给高中班主任打个广告.... 隔板法分两种...一种是不存在空集 = C(n- ... 
- 新版POI如何获取日期类型的cell的值
			使用POI读取Excel值的同学,一定为日期类型抓狂过! POI对单元格日期处理很弱,没有针对的类型,日期类型取出来的也是一个double值,所以同样作为数值类型.即使使用cell.setCellTy ... 
- MT【88】抽象函数
			分析:此类题一般有两种做法,第一种按解答题做法, 第二种作为填空题找对应的特殊函数,比如这里可以根据三角里和差化积得出$f(x)=\frac{1}{2}cos(\frac{\pi}{3}x)$ 
- C++并发编程之std::async(), std::future, std::promise, std::packaged_task
			c++11中增加了线程,使得我们可以非常方便的创建线程,它的基本用法是这样的: void f(int n); std::thread t(f, n + 1); t.join(); 但是线程毕竟是属于比 ... 
- c#的委托用法delegate
- [转载]Windows 8 VHD 概述与使用
			http://www.cnblogs.com/tonycody/archive/2012/11/30/2796858.html 
- 第13月第13天 iOS 放大消失动画
			1. - (void) animate { [UIView animateWithDuration:0.9 animations:^{ CGAffineTransform transform = CG ... 
- vb 中recordset提示对象关闭时不允许操作
			vb中执行查询后,一般要判断是否为空,只要执行的查询执行了select,都可以用rs.eof 或者 rs.recordcount来判断, 但是,如果执行的sql中加了逻辑判断,导致没有执行任何sele ... 
- 以后的博客将更新到自己的域名pythonsite.com,欢迎访问
			以后的博客将更新到自己的域名pythonsite.com,欢迎访问 
- yum安装失败:ublic key for **.rpm is not installed
			yum install mysql-server --nogpgcheck package_need_to_install 
