Backbone.js 为什么requireJs不会';加载定义的依赖模块?

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

使用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显示为未定义。但是,如果我直接查看require定义的模块,它就正确地显示在那里,我可以使用它(尽管我不想这样做,因为我不喜欢这样做)。为了添加更多上下文,我还在其他模块上使用这个ProjectServices依赖项,并通过define函数正确加载它


关于为什么不加载模块有什么建议吗?

我唯一能想到的是一个可能的循环引用,这意味着两个模块相互需要(不应该是这种情况)


正如您所说,require在其他模块中运行良好,这不应该是由于required模块中缺少return语句或路径错误造成的。(无论如何,您都可以检查此项)

在模块内尝试以下操作:

var ProjectServices = require('models/services/ProjectServices');

我认为在许多情况下,不需要窗口全局分配,我在使用require时尽量避免。

thnaks对于建议,我没有发现循环依赖本身,但它的行为方式可能表明它是通过类似于循环依赖的require进行评估的,因为它的行为类似于循环依赖,我认为这是正确的答案,因为在这种情况下,requirejs文档也建议这样做