0

我想在一个页面上多次加载一个模块,每个实例都有一个唯一的上下文。有两种正常的方法可以做到这一点。

  1. 模块可以返回一个构造函数
  2. 我可以显式运行 require 方法,提供上下文 ID。

这些中的任何一个都适用于我的情况,但我想要第三种选择。:)

我想要一个 requirejs 插件,它会在新的上下文中向我返回一个模块。IE,

require(["new!some/module"], function(SomeModule) {
    // SomeModule, here, is in its own context.  If i were to run this
    // method call again, SomeModule would be in a new context.
});

我已经开始考虑构建一个插件来做到这一点......

load: function (name, req, load, config) {
    var index = get_unique_index();
    req({context:index}, [name], function(value) {
        if(!config.isBuild){
            load(value);
        }
    });
}

但是 {context:index} 字典在这里不起作用......想法?

4

1 回答 1

1

不要使用传递给加载的本地 req,而是使用全局 require 函数,只需调用 require()。传递给 load 的本地已绑定到上下文。

于 2011-06-14T06:00:25.097 回答