我正在使用 here 中的示例项目.
假设我需要从模块中导出一些函数,以便为我的服务的客户端提供一些 JavaScript API。
但是我的 .js 文件中的声明在 RequireJS 之外不可见!
我将以下 block 添加到 jquery-require-sample/webapp/app.html:
<script type="text/javascript">
$(document).ready(function() {
$('body').alpha().beta();
});
</script>
失败:未捕获类型错误:对象 [object Object] 没有方法“alpha”。
可以做我想做的事吗?
最佳答案
根据您提供的代码,我假设您在 app.html 中的现有脚本标记之后添加了代码。我认为你所看到的是一个时间问题。加载页面后,查看<head>
标签,您应该按以下顺序看到脚本标签:
- “require”脚本
- 你的新脚本
- 阿尔法
- 测试版
因此它会在运行 alpha 和 beta 之前运行您的脚本。原因是 require 将处理第一个脚本,但不会执行 main.js 的“内容”,直到运行所有依赖项(alpha 和 beta)。
我希望这有帮助。对代码的以下更改也可能说明发生了什么情况。 setTimeout 为 alpha 和 beta 提供了加载的机会:
<script type="text/javascript">
setTimeout(function(){
$(document).ready(function() {
$('body').alpha().beta();
});
}, 5000);
</script>
关于javascript - RequireJS 和 JavaScript API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8374176/