-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathangular.load.js
More file actions
68 lines (62 loc) · 2.41 KB
/
angular.load.js
File metadata and controls
68 lines (62 loc) · 2.41 KB
1
/*!* angular.load.js* https://github.com/vistoyn/loadjs* Copyright (c) 2016 Ildar Bikmamatov* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)* Version: 1.0*/var angularApp = null;var $ldjs_ng={ a: [], // assets r: [], // angular requires modules s: ['angular_loaded'], // subscribe_init min: ['/assets/angular/angular.min.js'],}function angular_require(arr){ for (i in arr){ var obj = arr[i]; var t = typeof obj; // Если строка то просто добавим ее в массив assets if (t == 'string'){ if ($ldjs_ng.a.indexOf(obj) == -1) $ldjs_ng.a.push(obj); } // Если объект, то первый элемент - это модуль, второй - ресурсы для модуля. // Когда ресурсы будут загружены отправим событие <название модуля>_loaded else if (t == 'object'){ var a1 = obj[0], a2 = obj[0] + "_loaded"; if ($ldjs_ng.r.indexOf(a1) == -1) $ldjs_ng.r.push(a1); if ($ldjs_ng.s.indexOf(a2) == -1) $ldjs_ng.s.push(a2); $ldjs.sload('angular_loaded', obj[1], a2); } }}function angular_subscribe(arr){ for (i in arr){ var value = arr[i]; if ($ldjs_ng.s.indexOf(value) == -1) $ldjs_ng.s.push(value); }}function angular_load(){ $ldjs.load($ldjs_ng.min) .success(function(){ // Инициализируем ангуляр angularApp = angular.module('angularApp', $ldjs_ng.r); // Загружаем assets if ($ldjs_ng.a != []){ // Формируем подписку на загрузку ресурсов для ангуляра var a2='angular_assets_loaded'; if ($ldjs_ng.s.indexOf(a2) == -1) $ldjs_ng.s.push(a2); // После загрузки всех ресурсов будет отправлено сообщение angular_assets_loaded $ldjs.load($ldjs_ng.a, a2); } // Подписываемся на событие загрузки всех зависимостей ангуляра $ldjs.subscribe($ldjs_ng.s, function(){ angular.bootstrap(document, ['angularApp']); $ldjs.deliver('angular_started'); }); // Оповещаем всех о том, что angular.js загрузился $ldjs.deliver('angular_loaded'); });}function onAngularLoad(func){$ldjs.subscribe('angular_loaded', func);}function ngScope(ctrl){return angular.element(document.querySelector('div[ng-controller='+ctrl+']')).scope()}