2013-09-25 3 views
4

мне интересно, почему ...RequireJS определить() не вызывает функцию обратного вызова

<script type="text/javascript"> 
    define('test', [], function() { 
     alert('Done') ; 
    }) ; 
</script> 

... не работает.

Я использую свою собственную Framework, которая использует RequireJS, если она доступна, и вызывает define(name, dependencies, callback) ; для каждого загруженного модуля, который требует другого. Но иногда модули не имеют зависимостей, поэтому dependencies - пустой массив.

Кроме того, я знаю, что ...

require([], function() { 
    alert('Done') ; 
}) ; 

... отлично работает.

Не могли бы вы объяснить мне, почему первый метод не работает? Спасибо.

+2

Есть ли что-нибудь, что требует вашего 'test' модуля? Если нет, он не будет загружен (выполнен). – Bergi

+0

Да, это будет только один раз (см. Ответ от @Simon Boudrias). – Tot

ответ

6

Пока вам не понадобится модуль «test», он, очевидно, не будет вызван.

<script type="text/javascript"> 
    define('test', [], function() { 
     alert('Done') ; 
    }) ; 
    require(['test'], function() {}); 
</script> 
+0

Ах ... ладно. Звучит вполне логично. Благодаря ! – Tot

Смежные вопросы