RequireJS и JavaScript API - PullRequest
       21

RequireJS и JavaScript API

0 голосов
/ 04 декабря 2011

Я использую пример проекта от здесь .

Предположим, мне нужно экспортировать какую-то функцию из моего модуля, чтобы предоставить 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] не имеет метода 'alpha' .

Можно ли делать то, что я хочу?

1 Ответ

2 голосов
/ 06 декабря 2011

Исходя из предоставленного вами кода, я предполагаю, что вы добавили свой код после существующего тега сценария в app.html. Я думаю, что вы видите, это проблема времени. После загрузки страницы посмотрите на тег <head>, и вы должны увидеть теги сценария в следующем порядке:

  1. скрипт "require"
  2. ваш новый скрипт
  3. альфа
  4. бета

так что ваш скрипт запускается до запуска альфы и беты. Причина в том, что require обрабатывает первый скрипт, но не выполняет «мясо» main.js, пока не будут запущены все его зависимости (альфа и бета).

Надеюсь, это поможет. Следующие изменения в вашем коде могут также проиллюстрировать, что происходит. setTimeout дает альфе и бете возможность загрузить:

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