3

无论我在 shell.js 中注入什么对象,我都无法访问它。

它是从服务器下载的,我在那里或控制台输出中没有错误。

当我在控制台中输入“mainViewModel”时,我得到了这个:

ReferenceError: mainViewModel is not defined
get stack: function () { [native code] }
message: "mainViewModel is not defined"
set stack: function () { [native code] }
__proto__: Error

应用程序.js:

require(['shell'], function(Shell) {
        var shell = new Shell();
});

外壳.js:

define(['viewmodel/mainViewModel'], function (mainViewModel) {
    return function () {
        // When I am here the mainViewModel does not exist/undefined
    };
});

主视图模型.js:

define([], function() {
    return function() {

    };
})
4

1 回答 1

0

Require js 有时会在它拉下的文件中存在脚本错误时返回空值,我敢肯定我以前见过这种情况,结果总是丢失 } 或 ; 或类似的东西(我注意到缺少 ; 在 MainViewModel 的末尾,但它就在末尾,所以我不会严重怀疑它,我不知道这些文件中是否有任何额外的代码?或者它们真的是空白的)。

Stanislav 还提到了关于缓存的问题 - 因为如果它被缓存并且你修复它,那么它只会重新发送缓存的损坏文件(在开发时不断清除缓存可能是一个好习惯,哈哈)。实际上 urlArgs 可能也应该与生产中的版本号一起使用,用户清除缓存不会在升级后持续发生......

返回函数一切都很好,但是如果您创建一个变量,将函数分配给它,然后返回该变量,它可以更容易地调试被拉下的实际文件,如果您可以将断点放入其中并在之后记住刷新。然后您可以看到正在返回的对象,如果代码甚至命中该文件或者对象生成是否存在错误(我怀疑)

有点老了...我敢肯定,您现在要么已经解决了问题,要么沮丧地放弃了 require js :)

于 2013-10-09T13:27:27.883 回答