0

道場初心者です。ウィジェットを定義しました。次のように見える場合:

define(["dojo/_base/declare", "dijit/_Widget", "dijit/_TemplatedMixin", "dojo/text!Widgets/Templates/Screen.html", "./Node", "dojo/_base/array", "dojo/dom-geometry", "dojo/dom-style"],
    function (declare, widget, templated, template, node, array, domGeometry, domStyle) { 
...

これがどうあるべきかはわかりません。要件のリストが非常に長くても大丈夫ですか、それともコールバック内でそれらを要求する必要がありますか?

4

1 に答える 1

0

これは、特に長いモジュールのリストではありません。Dojo はその機能を非常に小さなモジュールに分割しているため、かなりの数のモジュールをフェッチするのが普通です。

コールバックでそれらを要求したくないことは間違いありません。defineは基本的に と同じrequireですが、依存関係を持つ非同期モジュールの結果を宣言するためにモジュールの先頭で使用されます。

注目すべきことの 1 つは、クラスの依存関係を同じ名前または類似した名前のパラメーターに注入する価値があるということです。これにより、結果のdeclare呼び出しがより簡単になります。

define(["dojo/_base/declare", "dijit/_WidgetBase", "dijit/_TemplatedMixin", "dojo/text!mytemplate.html"], function(declare, _WidgetBase, _TemplatedMixin, template) {

    return declare("my.Widget", [_WidgetBase, _TemplatedMixin], {
        templateString: template
    };
});

依存関係を論理的なグループにグループ化することもできます。たとえば、基本クラスをまとめたり、ヘルパー モジュールをまとめたりします。また、モジュールリストの最後で、テンプレートに記載されている他のモジュールを宣言する必要があります。コードでそれらを使用していない場合は、必ずしもそれらをコールバックパラメーターとして宣言する必要はありませんused/by/template1used/by/template2ここ:

define(["dojo/_base/declare", "dijit/_WidgetBase", "dijit/_TemplatedMixin", "dojo/text!mytemplate.html", "used/by/template1", "used/by/template2"], function(declare, _WidgetBase, _TemplatedMixin, template) {

    return declare("my.Widget", [_WidgetBase, _TemplatedMixin], {
        templateString: template
    };
});
于 2012-09-22T16:02:10.410 に答える