2

Dojo 1.7 amd 依存関係リストのソース コードを見ると、次のように表示されます。

define(["./_base/kernel", "./has", "./dom", "./on", "./_base/array", "./_base/lang", "./selector/ _loader", "./selector/_loader!default"],

私が知っている唯一の感嘆符の使用はプラグイン用です。この「!default」はこれまで見たことがありません。
このページ「https://github.com/amdjs/amdjs-api/wiki/AMD」を読んでググったのですが、答えが見つかりませんでした。
誰でもそれで私を助けることができます!
ありがとう
ヴォルフガング

更新:
Ates Goral さん、ご回答ありがとうございます。
今、すべてが私には明らかです。
次に、この特殊なケースで私にとって苛立たしいことは、「./selector/_loader」が上記の行で2回発生し、1回はパラメーターなしで、次にパラメーターありであるということでした。「dojo/domReady!」と書いている人を見かけたので、プラグインにはパラメータなしでもエクスクラメーションマークを書くのは必須だと思いました。これで、プラグインには「!」が必要ないことがわかりました。「dojo/domReady」と書きます。

別の更新:今日、次の興味深いステートメントを見つけました ( https://github.com/csnover/dojo-boilerplate
の main.js ):

「!」モジュール名の後に、特別なプラグイン機能を使用することを示します。「dojo/domReady」だけが必要な場合は、特別なプラグイン機能なしで、他のモジュールと同じようにそのモジュールをロードします。

この発言が正しいかどうかはわかりません。それは正しいのですが、「./selector/_loader」にはある種のハイブリッド機能がありますか?

4

1 に答える 1

7

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

require または define に渡されたモジュール識別子に "!" が含まれている場合、ローダーは感嘆符で文字列を 2 つに分割します。「!」の左側の文字列 通常のモジュール ID のように扱われ、目的のプラグインの識別子として使用されます。"!" の右側の文字列 処理のためにプラグインに渡されます。

あなたの場合、「デフォルト」がプラグインに渡されています。

于 2012-02-07T05:04:21.443 に答える