0

是的,我知道这里已经被无限期地问过了,而且我已经知道使用 requirejs 时的一般规则,调用 define()的所有内容都必须通过单个脚本标记加载,如下所示:

<script src="js/lib/require.js" data-main="js/main"></script>

但我发现自己的处境是,针对这个常见错误提供的一般建议不足以解决我的特定问题,表面上看起来很简单。

我正在开发一个 angular、requirejs 和 WinJS(只是为了让事情变得有趣)应用程序,并且遇到了这个错误的问题。我的主 html 文件确实使用单独的脚本标签加载了其他几个 JavaScript 源文件,但它们都没有调用 define()。我检查了。两次。好的,三遍。 应用程序中的所有其他 JS 源文件都通过与上述类似的单个脚本标签加载。但是我仍然收到此错误。

我尝试给我的每个应用程序模块一个 requirejs 标识符:

define('myModule', ['dep1', 'dep2', etc.], function(dep1, dep2) {
    return angular.module('app.mymod', ['winjs', etc.]);
});

但是使用这种方法,依赖于上面定义的角度模块的角度模块无法解决这种依赖关系(尽管 requirejs 现在非常满意)。

在 requirejs 之外加载的三个 JS 文件是:

<script src="//Microsoft.WinJS.2.0/js/base.js"></script>
<script src="//Microsoft.WinJS.2.0/js/ui.js"></script>
<script src="js/lib/dynamic-content-shim.js"></script>

后者修补 WinJS 运行时以允许创建动态内容。WinJS 运行时确实在自己的命名空间中公开了一个定义函数,但它与 requirejs 完全无关。

那么给了什么?

4

0 回答 0