为什么requireJs不会加载定义的依赖模块?



我在使用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在其他模块中工作得很好,它不应该是由于所需模块中缺少返回语句或错误的路径。(无论如何你都可以检查一下)。

最新更新