当我查看dojo 1.7 amd依赖列表的源代码时,我看到以下内容:
define([“./_ base / kernel”,“。/ has”,“。/”“,”。/ on“,”。/ _ base / array“, “./_base/lang”,“./ selector / _loader”,“./ selector / _loader!default”],
我知道感叹号的唯一用途是插件,我之前没有看过这个“!default”。
我读了这页“https://github.com/amdjs/amdjs-api/wiki/AMD”并用Google搜索,但我没有找到任何答案。
任何人都可以帮助我!
由于
沃尔夫冈
更新:
谢谢你,Ates Goral,你的回答
现在一切都很清楚了。
然后,对于我这个特殊情况的令人恼火的事情是,“./ selector / _loader”在上面的行中出现两次,一次没有参数,下一次带有参数。我看到有人写“dojo / domReady!”,所以我认为必须为插件写一个感叹号,即使没有参数。现在我了解到插件不需要“!”我会写“dojo / domReady”。
另一个更新:
今天我发现了以下有趣的声明(https://github.com/csnover/dojo-boilerplate的main.js):
模块名称后面的“!”表示您要使用特殊的插件功能;如果你只需要“dojo / domReady”,它会像任何一样加载该模块 其他模块,没有任何特殊的插件功能。
我不知道这句话是否正确。它是正确的,那么“./selector/_loader”会有某种混合功能吗?
答案 0 :(得分:7)
http://livedocs.dojotoolkit.org/loader/amd
当传递给require或define的模块标识符包含“!”时, 加载程序在感叹号处将字符串拆分为两个。该 “!”左侧的字符串被视为正常的模块ID,是 用作所需插件的标识符;右边的字符串 “!”传递给插件进行处理。
在您的情况下,“默认”将传递给插件。