“!default”对于依赖项意味着什么

时间:2012-02-07 04:51:15

标签: javascript dojo amd js-amd

当我查看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”会有某种混合功能吗?

1 个答案:

答案 0 :(得分:7)

http://livedocs.dojotoolkit.org/loader/amd

  

当传递给require或define的模块标识符包含“!”时,   加载程序在感叹号处将字符串拆分为两个。该   “!”左侧的字符串被视为正常的模块ID,是   用作所需插件的标识符;右边的字符串   “!”传递给插件进行处理。

在您的情况下,“默认”将传递给插件。