我在使用Require.js加载我的模块依赖项时遇到了问题。基本上,我有以下模块,我在其中定义骨干模型的扩展。
define(["models/services/ProjectServices"],
function (ProjectServices) {
var SomeModel = Backbone.Model.extend({
sample: function () {
var servicesFromDependency = ProjectServices; //undefined
var projectServices = window.require.s.contexts._.defined["models/services/ProjectServices"]; //defined and Ok
}
});
return SomeModel;
}
);
在这个模块中,我想使用已经定义的ProjectServices模块。为了做到这一点,我将其作为依赖项添加。问题是,在定义的示例函数ProjectServices显示为未定义。但是,如果我直接查看需要定义的模块,它显示在那里正确,我可以使用它(虽然我不想,因为我不喜欢破解它这种方式)。为了增加更多的上下文,我还使用这个ProjectServices依赖于其他模块,在那里它通过定义函数正确加载。
关于为什么模块不会被加载的任何建议?
在模块中试试:
var ProjectServices = require('models/services/ProjectServices');
我认为在许多情况下,不需要窗口全局赋值,我尽量避免使用requirejs .
我唯一能想到的是一个可能的循环引用,这意味着两个模块相互需要(不应该是这种情况)。
正如您所说的,require在其他模块中工作得很好,它不应该是由于所需模块中缺少返回语句或错误的路径。(无论如何你都可以检查一下)。