Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Динамическая подгрузка скрипта контроллера (https://javascript.ru/forum/angular/52759-dinamicheskaya-podgruzka-skripta-kontrollera.html)

Shasoft 05.01.2015 19:27

Динамическая подгрузка скрипта контроллера
 
Везде в примерах используется requeryJS. Однако я от него отказался, так как мне столько функционала не требуется.
Попробовал использовать вот этот сервис. Но не работает. т.е. он подгружает скрипт и я по выводу в консоль вижу что скрипт подгружается. Однако все-равно получаю ошибку
Error: [ng:areq] Argument '<имя моего контроллера>' is not a function, got undefined

Если же файл с контроллером подключить напрямую, то все нормально. Т.е. ошибка именно из-за динамической подгрузке. Ни у кого нет рабочих примеров реализации такой загрузки?

update: Подключил requereJS и попробовал через него подключать. Тоже самое.
require(["/test.js"], function() {
						deferred.resolve();
					});


update2: Для теста заменил загрузку контролера на его прямое инициализацию при вызове страницы таким кодом
ShasoftApp.controller('MyTestController', 
						[		 '$scope','$log','MyForm',
						function( $scope , $log , MyForm) 
						{
						}]
					);
Не работает :(
Все, идеи закончились :(

Tek 06.01.2015 14:33

ocLazyLoad не подойдет?

Shasoft 06.01.2015 22:43

Попробую. Спасибо. Других вариантов все-равно больше нет.

Shasoft 10.01.2015 00:19

Заработало через ocLazyLoad.
Как оно там реализовано - разбираться не стал, оставил "на потом"

Vlasenko Fedor 10.01.2015 00:33

Цитата:

Сообщение от Shasoft
оставил "на потом"

это если потом наступит
вроде все просто написано :)
http://jsfiddle.net/vlasenkofedor/5pDXf/

Shasoft 10.01.2015 14:10

Poznakomlus,
Это верно. 'Потом' - понятие растяжимое :) .

Я и requeryJS пробовал и другими подгружать скрипт. Скрипт то подгружается (я это виду и по логам и в консоли), но вот Angular все равно ругался что нет такого контроллера. Т.е. тут какая-то фишка не в подгрузке, а во взаимодействии с Angular.


Часовой пояс GMT +3, время: 17:00.