angularJs按需加載代碼(未驗證)

一網友寫的AngularJs按需加載代碼,但未驗證,放着備用。
 
application.config(                function($routeProvider) {                  $routeProvider.                     when('/:module/:view', {                         templateUrl: function(params) {                             var core = angular.element(document).injector().get('core');                             core.openView(params.module, params.view);                             return 'app/views/{0}/{1}.jsp'.format(params.module, params.view);                         }                    }).                    otherwise({                      redirectTo: '/home/landing'                    });                }); 'use strict'; // declare an application core module var coreModule = angular.module('core', ['network']); coreModule.factory('core',     function (http, $location) {         return {             openView: function (module, view) {                 if (!module) {                     throw new Error('Please provide module.');                 }                                  if (!view) {                     throw new Error('Please provide view.');                 }                                  http.getController(module, view);                 if($location.path() !== '/{0}/{1}'.format(module, view)) {                     $location.path('/{0}/{1}'.format(module, view)).replace();                 }             }         };     } ); 'use strict'; // declare a network service module var httpModule = angular.module('network', []); httpModule.factory('http',     function ($http, $q) {         return {             get: function (url) {                 if (!url) {                     throw new Error('Please provide request url.');                 }                                  var defer = $q.defer();                                  $http.get(url).then(                     function(response) {                         defer.resolve(response.data);                     },                     function(error) {                         defer.reject(error);                     });                 return defer.promise;             },             post: function (url, paramObj) {                 if (!url) {                     throw new Error('Please provide request url.');                 }                                  var defer = $q.defer();                                  paramObj = paramObj || {};                 $http.post(url, paramObj).then(                     function(response) {                         defer.resolve(response.data);                     },                     function(error) {                         defer.reject(error);                     });                 return defer.promise;             },             getController: function (module, controller) {                 if (!module) {                     throw new Error('Please provide module.');                 }                                  if (!controller) {                     throw new Error('Please provide controller.');                 }                                  var webRoot = window.location.href.substr(0, window.location.href.lastIndexOf('/home.action'));                 var url = '{0}/{1}/{2}/{3}.js'.format(webRoot, 'app/controllers', module, controller);                 var existed = false;                 $.each($('head').find('script'), function(index, value) {                  if(value.src === url) {                  existed = true;                  }                 });                                  if(!existed) {                     var script = document.createElement('script');                     script.type = 'text/javascript';                     script.src = url;                     script.charset = 'utf-8';                     document.head.appendChild(script);                 }             }         };     } );
相關文章
相關標籤/搜索