0

私はちょうど疑問に思っていました.それは私の脳をくすぐっていた単なる一般的な質問です. 上記の Dojo 1.7 は、ウィジェットを呼び出してクラスを支援する優れた方法である AMD モジュールを使用します。

コールバックを使用してクラスまたは AMD モジュールを呼び出す通常の方法に関する質問は、次のようになります。

require(['dojo/_base/lang', 'dojox/grid/DataGrid', 'dojo/data/ItemFileWriteStore', 'dojo/dom', 'dojo/domReady!'],
    function(lang, DataGrid, ItemFileWriteStore, dom){

このようにして、これらのモジュールを使用する関数でコールバックを使用して、lang、DataGrid、および ItemFileWriteStore モジュールを呼び出しています。一部のモジュールには、dojo/domReady! などのコールバックがありません。

違いはありますか、それともモジュールを呼び出すシーケンスでエラーが発生しますか? または重要な部分は、それらをrequireと関数で同じシーケンスに配置することです。しかし、どちらを最初に呼び出すかは問題ではありませんか?

4

2 に答える 2

2

何を尋ねているのかわかりません。ただし、関数内のパラメーターは、インポートするモジュール名と同じ順序/シーケンスにする必要があります (上記の例のように)。

モジュールがオブジェクト (domReady など) を返さない場合は、最後のモジュールとして配置することをお勧めします。これは、それらのほとんどが何か (HTML ドキュメント、関数など) を返すためです。

もちろん、好きな場所に追加できますが、 と を切り替えるdojo/domdojo/domReady!、変数domにコードが含まれなくなりdojo/dom、他のモジュール (オブジェクトなし) のコードが含まれることになります。これは、次のようなことをしなければならないことを意味します。

require(['dojo/_base/lang', 'dojox/grid/DataGrid', 'dojo/data/ItemFileWriteStore', 'dojo/domReady!', 'dojo/dom'],
    function(lang, DataGrid, ItemFileWriteStore, placeholder, dom){

placeholder本当の用途がないところ。

于 2013-03-16T01:03:10.527 に答える
0

あなたは何かを誤解しているかもしれないし、あなたの言っていることを私が誤解しているのかもしれません。

このdefine()関数は次の 2 つのパラメーターを取ります。

  • 依存関係であるモジュール名の配列
  • これらの依存関係を必要とするコールバック関数

モジュールまたはモジュール名自体はコールバックではありません。コールバックは作成した関数であり、すべてのモジュールがロードされたときに起動されます。

Demitri M が言うように、値を返さないモジュール (他の処理を行うため) をコールバック関数の最後に配置するのは理にかなっています。これにより、パラメーター リストを短くすることができるからです。

于 2013-04-17T10:19:45.843 に答える