依赖关系中“./has!dom-addeventlistener?:./aspect”是什么意思
What is the meaning of "./has!dom-addeventlistener?:./aspect" in a dependency?
我正在一个项目中使用 dojo 工具包,它使用 require.js 来加载脚本。在 on.js 中,它会加载以下脚本:
define(["./has!dom-addeventlistener?:./aspect", "./_base/kernel", "./sniff"], function(aspect, dojo, has){
使用时.js我找不到错误:
Uncaught Error:
Missing: http://localhost:8585/dom-addeventlistener?:./aspect.js
我想知道./has!dom-addeventlistener?:./aspect
符号有什么作用,如果我删除它可能会有什么潜在影响。当我只是做./aspect
时,它似乎有效。
谢谢!
当使用 dojo/has
模块作为插件时,它的行为类似于三元运算符:
条件(三元(运算符是唯一采用三个操作数的 JavaScript 运算符。此运算符经常用作 if 语句的快捷方式。
condition ? expr1 : expr2
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
最好通过参考中的以下示例进行解释:
require(["dojo/has", "dojo/has!touch?dojo/touch:dojo/mouse", "dojo/dom", "dojo/domReady!"],
function(has, hid, dom){
if(has("touch")){
dom.byId("output").innerHTML =
"You have a touch capable device and so I loaded <code>dojo/touch</code>.";
} else {
dom.byId("output").innerHTML =
"You do not have a touch capable device and so I loaded <code>dojo/mouse</code>.";
}
}
);
https://dojotoolkit.org/reference-guide/1.10/dojo/has.html
重要的一点:dojo/has!touch?dojo/touch:dojo/mouse
这里发生的事情是,加载dojo/has
模块并检查touch
(如果您有支持触摸的设备(,如果测试正常并且找到它,它会加载dojo/touch
。如果不是,它会加载dojo/mouse
.
在你的例子中:./has!dom-addeventlistener?:./aspect"
,dojo/has
测试DOM的addEventListener方法的可用性。如果找到它,则不会加载任何内容,因为省略了?
和:
之间的部分。如果未找到,则加载dojo/aspect
.
如果模块也可以在没有像浏览器中那样的 DOM 的服务器端运行,则通常使用此类代码。我想说的是,如果您仅在浏览器中运行,则可以安全地省略整个要求,因为每个像样的浏览器都支持addEventListener
也就是说,您遇到的错误是无法正确加载dojo/has
相对模块路径。加载./aspect
时它也应该失败,但它没有,这很奇怪。确保dojo/has
可用,因为删除要求是一种解决方法,而不是实际问题的解决方案。
- @@(“at at”)在ES6 JavaScript中是什么意思
- minimy javascript是什么意思?Backbone.js
- var w = q||问2;这个表达式是什么意思
- 什么'它的意思是当一个变量位于括号外时
- 函数(i,val)在javascript中是什么意思
- 问号在这段代码中是什么意思
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- 什么意思是“;向原型添加方法”;
- ||{}在javascript中是什么意思
- “转义字符串”在Regex中是什么意思?(Javascript)
- 什么是“;传递给NewPromiseCapability的非构造函数值“;意思是
- 什么是“;(''+元素+'')“;意思是
- 这个代码是什么意思(history.replaceState和history.pushstate)
- :: 是什么意思
- 这是什么意思?getData([renderData]);
- 意思是.js - 登录后重定向用户 - 在本地工作,但在部署时不起作用
- MDN文档中关于弄清楚XUL元素的段落是什么意思:“如何将覆盖扩展转换为无重启”
- require('file_path')后面的后缀(模块)在javascript文件中是什么意思
- Twitter Bootstrap的Tab插件中“data-api”是什么意思
- 依赖关系中“./has!dom-addeventlistener?:./aspect”是什么意思