因为最近想学学ArcGIS API for JavaScript ,翻了下ESRI的官网guide,发现其是基于dojo框架的,看了两页实在看不懂,于是先来熟悉下dojo框架。人蠢不能怪社会%>_<%,可能只是别人入门时甚至没当回事的问题,在我这硬是弄了好久才弄明白,就是dojo configuration中的package路径问题。


以上废话


假设我的文件目录结构如下:

/index.htmldojo-release-1.10.4/dojo/dojo.js/dojox/dijitmytest/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

转载于:https://www.cnblogs.com/SheilaSun/p/4380925.html

dojo 加载自定义module的路径问题相关推荐

  1. php定义一个名为Vehicles,[PHP][Yii2.0] 以Yii 2.0风格加载自定义类或命名空间 [配置使用Yii2 autoloader]...

    Yii 2.0最显著的特征之一就是引入了命名空间,因此对于自定义类的引入方式也同之前有所不同.这篇文章讨论一下如何利用Yii 2.0的自动加载机制,向系统中引入自定义类和命名空间.本文旨在抛砖引玉,如 ...

  2. win10支持linux内核,Win10将允许您加载自定义Linux内核

    微软正在为Win10添加一个Linux内核,以支持Linux的Windows子系统.但是,猜测一下:你不必使用微软的Linux内核.您可以构建自己的自定义Linux内核供Windows使用. 此功能是 ...

  3. BundleLoader:帮你无缝加载自定义Bundle里的资源文件

    引子 iOS开发中,我们封装SDK给第三方使用通常采用.a或.framework + .bundle的形式.相信封装过这种带bundle资源文件的SDK的同学们一定都会遇到这样一个小麻烦.那就是加载自 ...

  4. AutoCAD C# 自动加载自定义RibbonUI界面

    目录 实现效果: 开发环境: 开发流程: 打开Visual Studio ,创建 .NET FrameWork 类库项目 填写项目名称 "RibbonUI",选择.NET 版本为 ...

  5. php taglib.php,thinkphp5 taglib_pre_load预加载自定义标签库

    文章内容来自官方手册,需要查看详细的可以访问来源网址. 模板中加载标签库,预加载自定义标签库,扩展内置标签库的加载 下面以标签库放在common作为一个示例: namespace app\common ...

  6. Glide加载自定义大小图片在刷新时图片忽大忽小问题解决

    1.问题场景 在 listview 的 item 布局中使用了 imageview 控件,用 glide 根据路径加载自定义大小的图片 2.问题描述 在刷新 listview 的时候发现imagevi ...

  7. zf2 加载自定义命名空间

    当需要在控制器重加载自定义的命名空间需要 Zend\Loader\StandardAutoloader 去注册命名空间对应的目录. 比如结构如下 zf2 -----config -----core(自 ...

  8. tinymce加载自定义语言包

    对tinymce自带的语言包不满意,重新修改语言包后通过language_url来加载自定义语言包.但是不管怎么修改language_url都没有生效,最后发现自定义的语言代码不能和既有的语言代码重复 ...

  9. ansj添加自定义词典以及解决ansj加载自定义词典不起作用问题

    pom文件中添加 <!-- Ansj中文分词--><dependency><groupId>org.ansj</groupId><artifact ...

最新文章

  1. linux服务器性能监控命令汇总之iostat命令(三)
  2. 线段树3——一些例题的题解
  3. 用3ds导入spk文件好小坐标多_2020东莞长安贴片厂代工代料哪家好-鸿鑫辉
  4. 全球及中国磁滑轮行业规模预测与供应规划研究报告2022版
  5. monit 内存 监控_如何借助Monit搭建服务器监控系统?(1)
  6. Java中的四种引用方式的区别
  7. 《JavaScript权威指南》——JavaScript核心
  8. 读书笔记: 博弈论导论 - 05 - 完整信息的静态博弈 纳什均衡
  9. C++前景如何,C++好学吗?
  10. select不能触发change_SQL之警觉触发
  11. 002649:springboot下mybatis运行原理
  12. C# 异步调用控件 跨线程调用控件 跨线程赋值
  13. 北理c语言乐学作业分数运算,北理乐学C语言答案-最新(12页)-原创力文档
  14. 金万维异速联服务器重装,金万维异速联服务器配置说明.doc
  15. 微信登陆、支付接口对接整理
  16. 【oracle报错】ORA-01722:无效数字
  17. 20221119day12作业:顶点小说全栈抓取、京东3页数据抓取、震坤行3页数据抓取
  18. java 字节流乱码_java用字节流读取中文乱码怎么解决?
  19. wordpress 文章插入的超链接访问不了
  20. 使用postman生成测试报告

热门文章

  1. 修复版ZFAKA发卡系统源码 自适应PC+手机端
  2. 织梦手机软件应用app下载排行网站模板
  3. 面试:一文搞懂重载和重写的区别
  4. 什么样的企业适合做响应式网站
  5. LPVOID是一个没有类型的指针
  6. 使用分页方式读取超大文件的性能试验
  7. 一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子
  8. 使用FormData对象
  9. Largevis算法
  10. 人工智障学习笔记——机器学习(7)FM/FFM