Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.11.2013, 15:07
Новичок на форуме
Отправить личное сообщение для theoddbeard Посмотреть профиль Найти все сообщения от theoddbeard
 
Регистрация: 21.11.2013
Сообщений: 2

Динамическая загрузка модуля в Angular
Как динамически загрузить модуль в Angular через $http, чтобы потом пользоваться его контроллерами и сервисами?

Загрузка модуля осложнений не вызывает, но при таком коде :
angular.module('dlmod',[])
.controller('dlmodCtrl',function($scope,DLSvc){})
.factory('DLSvc',function(){return ServiceObject;})
app.requires.push('dlmod');

при компиляции Angular не находит контроллер dlmodCtrl, а при таком
angular.module('dlmod',[])
.factory('DLSvc',function(){return ServiceObject;});
app.requires.push('dlmod');
function dlmodCtrl('dlmodCtrl',function($scope,DLSvc){
});

не находит сервис (DLSvcProvider np found). При этом, если данный модуль подгрузить вместе со всем приложением, все работает.

Последний раз редактировалось theoddbeard, 21.11.2013 в 15:09.
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2013, 01:06
Новичок на форуме
Отправить личное сообщение для theoddbeard Посмотреть профиль Найти все сообщения от theoddbeard
 
Регистрация: 21.11.2013
Сообщений: 2

Нашел решение проблемы.
Все дело в том, что после вызова angular.bootstrap нельзя добавить компоненты штатными средствами angular.
Помог такой код:
var app=angular.module('myApp',[]);
app.config(function($controllerProvider,$provide,$compileProvider){

	angular._module = angular.module;
	angular.module = function(name,req){
		var m = angular._module(name,req);
		m.controller = function(name,constructor){
			$controllerProvider.register(name,constructor);
			return this;
		};
		
		m.service = function(name,constructor){
			$provide.service(name,constructor);
			return this;	
		};
		
		m.factory = function(name,constuctor){
			$provide.factory(name,constuctor);
			return this;
		};
		
		m.value=function(name,value){
				$provide.value(name,value);
				return this;
		};
		m.directive=function(name,factory){
				$compileProvider.directive(name,factory);
				return this;
		};
		return m;
	};
	
});


После этого можно подгружать компоненты angular динамически.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическая подгрузка контроллеров в связке Angular + Require Dmitriyff Библиотеки/Тулкиты/Фреймворки 1 13.12.2013 15:30
Динамическая загрузка модуля + расширение функционала главного модуля Aries Angular.js 1 13.11.2013 21:11
динамическая загрузка ковра из изображений Yzgramor Общие вопросы Javascript 1 02.10.2013 14:07
динамическая загрузка скриптов dolas Events/DOM/Window 6 08.03.2013 06:07
Динамическая загрузка js imissyouso Общие вопросы Javascript 11 09.08.2012 13:46