有没有办法参数化在Dojo中加载哪些模块?

时间:2014-01-27 19:13:12

标签: module dojo amd

我想要实现的是这样的,但我不确定如何去做:

define([
    // Load basic modules that are always used
], function (one, two, ...) {
    if (a) {
        // Load this extra module as "extraModule"
    }
    else {
        // Load that extra module as "extraModule"
    }
    // Be able to use functions from extraModule without worrying
    // exactly what they do
    extraModule.doTheThing();

然后,extraModule的两个选项就好像它们是从同一个抽象类继承的对象。

有没有人知道Dojo是否可以这样做?

1 个答案:

答案 0 :(得分:1)

我认为实现这一目标的最接近方法是执行以下操作:

define([ "one", "two", "extraModule1", "extraModule2" ], function(one, two, extra1, extra2) {
    var extra = null;
    if (a) {
        extra = extra1;
    } else {
        extra = extra2;
    }
});

所以你只需加载这两个模块,然后选择你需要的模块。