Показать сообщение отдельно
  #1 (permalink)  
Старый 15.05.2014, 16:41
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Вопрос по requirejs: как вызвать модуль немедленно?
Пишу встраиваемое прилоение, что-то типа огромного jQuery плагина. "Главный" модуль должен запросить другой модуль, в котором, в свою очередь загружаются остальные модули. Он (главный модуль) должен создавать глобальную функцию. Проблема в том, что эта функция создается с задержкой из-за того, что модули асинхронны.

main.js:
define( 'main', [ 'blah' ], function( Blah ) {
	window.Blah = Blah;
});
require( ['main'] );


Далее, в другом файле вызываем:
new Blah(); // Blah is not defined



Оптимизатор должен выдавать один JS файл, который должен немедленно создать переменную.
<script src="blah-built.js"></script>
<script>new Blah(); // Blah is not defined </script>


Сейчас приходится извращатьс вот так:

main.js:
( function() {
	window.Blah = function() {
		var _this = this;
		require([ 'blah' ], function( _Blah ) {
			_this.me = new _Blah();
		});
	};
})();


Как решить эту проблему? Хочется иметь нормальный конструктор сразу после загрузки.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием