Backbone.js 为什么requireJs不会';加载定义的依赖模块?
使用Require.js加载模块的依赖项时出现问题。基本上,我有以下模块,在其中我定义了主干模型的扩展Backbone.js 为什么requireJs不会';加载定义的依赖模块?,backbone.js,requirejs,Backbone.js,Requirejs,使用Require.js加载模块的依赖项时出现问题。基本上,我有以下模块,在其中我定义了主干模型的扩展 define(["models/services/ProjectServices"], function (ProjectServices) { var SomeModel = Backbone.Model.extend({ sample: function () { var servicesFromDepend
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显示为未定义。但是,如果我直接查看require定义的模块,它就正确地显示在那里,我可以使用它(尽管我不想这样做,因为我不喜欢这样做)。为了添加更多上下文,我还在其他模块上使用这个ProjectServices依赖项,并通过define函数正确加载它
关于为什么不加载模块有什么建议吗?我唯一能想到的是一个可能的循环引用,这意味着两个模块相互需要(不应该是这种情况)
正如您所说,require在其他模块中运行良好,这不应该是由于required模块中缺少return语句或路径错误造成的。(无论如何,您都可以检查此项) 在模块内尝试以下操作:
var ProjectServices = require('models/services/ProjectServices');
我认为在许多情况下,不需要窗口全局分配,我在使用require时尽量避免。thnaks对于建议,我没有发现循环依赖本身,但它的行为方式可能表明它是通过类似于循环依赖的require进行评估的,因为它的行为类似于循环依赖,我认为这是正确的答案,因为在这种情况下,requirejs文档也建议这样做