Requirejs и javascript api
-
27-10-2019 - |
Вопрос
Я использую образец проекта из здесь.
Предположим, мне нужно экспортировать некоторую функцию из моего модуля, чтобы предоставить клиентам API JavaScript клиентам моего сервиса.
Но объявления в моих файлах .JS не видны вне потребностей!
Я добавляю следующий блок в jquery-require-sample/webapp/app.html:
<script type="text/javascript">
$(document).ready(function() {
$('body').alpha().beta();
});
</script>
Это терпит неудачу: Uncaught typeerror: объект [объект объекта] не имеет метода «альфа».
Можно ли делать то, что я хочу?
Решение
На основе кода, который вы предоставили, я предполагаю, что вы добавили свой код после существующего тега скрипта в app.html. Я думаю, что то, что вы видите, является проблемой времени. После загрузки страницы взгляните на <head>
тег, и вы должны увидеть теги сценария в следующем порядке:
- сценарий «требовать»
- Ваш новый сценарий
- альфа
- бета
Таким образом, он запускает ваш сценарий до запуска альфа и бета -версии. Причина в том, что требовать обработать первый сценарий, но не выполнять «мясо» main.js, пока все его зависимости не будут выполнены (альфа и бета).
Надеюсь, это поможет. Следующие изменения в вашем коде могут также проиллюстрировать, что происходит. Settimeout дает Alpha и Beta возможность загрузить:
<script type="text/javascript">
setTimeout(function(){
$(document).ready(function() {
$('body').alpha().beta();
});
}, 5000);
</script>