无论我在 shell.js 中注入(inject)什么对象,我都无法访问它。
它是从服务器下载的,我在服务器或控制台输出中没有收到任何错误。
当我在控制台中输入“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();
});
shell.js:
define(['viewmodel/mainViewModel'], function (mainViewModel) {
return function () {
// When I am here the mainViewModel does not exist/undefined
};
});
MainViewModel.js:
define([], function() {
return function() {
};
})
最佳答案
当需要 js 拉取的文件中存在脚本错误时,有时会返回 null,我确信我以前见过这种情况发生在我身上,而且结果总是缺少 } 或 ;或类似的东西(我注意到在 MainViewModel 的末尾缺少 ; 但它就在最后,所以我不会严重怀疑它,我不知道这些文件中是否有任何额外的代码?或者它们真的是空白的)。
还有斯坦尼斯拉夫提到的关于缓存的问题 - 因为如果它被缓存并且你修复它,那么它只会重新发送缓存的损坏文件(在开发时不断清除缓存可能是一个好习惯,哈哈)。实际上 urlArgs 可能也应该与生产中的版本号一起使用,用户在升级后不会一致地清除缓存......
返回函数一切都很好,但是如果您创建一个变量,将函数分配给它,然后返回该变量,如果您可以在其中设置断点,则可以更轻松地调试正在下拉的实际文件并在刷新后记住。 然后,如果代码甚至命中该文件或者对象生成出现错误(我怀疑),您就可以看到正在返回的对象
有点旧了......我确信你现在要么已经解决了你的问题,要么已经沮丧地放弃了 require js :)
关于javascript - 尽管脚本已下载,但 requirejs 根本不注入(inject)任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17694660/