0

我正在使用这里的示例项目。

假设我需要从我的模块中导出一些函数来为我的服务的客户端提供一些 JavaScript API。

但是我的 .js 文件中的声明在 RequireJS 之外是不可见的!

我将以下块添加到 jquery-require-sample/webapp/app.html:

<script type="text/javascript">
   $(document).ready(function() {
      $('body').alpha().beta();
   });
</script>

它失败了:Uncaught TypeError: Object [object Object] has no method 'alpha'

有可能做我想做的事吗?

4

1 回答 1

2

根据您提供的代码,我假设您在 app.html 中的现有脚本标记之后添加了代码。我认为您所看到的是时间问题。加载页面后,查看<head>标签,您应该按以下顺序看到脚本标签:

  1. “要求”脚本
  2. 你的新剧本
  3. α
  4. 测试版

所以它在运行 alpha 和 beta 之前运行你的脚本。原因是 require 将处理第一个脚本,但不会执行 main.js 的“肉”,直到它的所有依赖项都运行(alpha 和 beta)。

我希望这有帮助。以下对您的代码的更改也可以说明正在发生的事情。setTimeout 让 alpha 和 beta 有机会加载:

<script type="text/javascript">
  setTimeout(function(){
           $(document).ready(function() {
              $('body').alpha().beta();
           });
           }, 5000);
</script>
于 2011-12-06T01:14:19.193 回答