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,但在模块顶部用于声明具有依赖关系的异步模块的结果。

值得注意的一件事是,将类依赖项注入具有相同或相似名称的参数可能是值得的:它使结果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 回答