亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳解基于angular路由的requireJs按需加載js

2019-11-19 17:51:12
字體:
來源:轉載
供稿:網友

最近終于不忙了!!有時間沉淀一下之前學到的angular東東?。?br />

angular路由想必大家已經不陌生了?。吧娜タ次抑澳瞧职咽纸棠闩渲胊ngular路由?。?br />

angular路由作為單頁面應用,切換頁面的時候都是一個頁面,所以切換controller和按需加載控件js就成了大問題??!折騰了我半天啊,angular-route內置的辦法也沒有解決這個問題,最終我是用requireJs解決的這個問題!!上代碼!

1.首先引入requireJs,并且在它的下面用閉包寫配置 requirejs(['framework']),這句話的意思是首次進入頁面,加載framework

<script src="js/lib/require.min.js"></script> <script>   (function () {     var jsDir = '/js/';     var jsLibDir = '/js/lib/';     var jsComponentDir = '/components/';     var paths = {       angular: jsLibDir + 'angular.min',       angularRoute: jsLibDir + 'angular-route.min',       jquery: jsLibDir + 'jquery.min',       jQueryMD5: jsLibDir + 'jquery.md5',       highcharts: jsLibDir + 'highcharts',       radialProgress: jsLibDir + 'radialProgress',       d3: jsLibDir + 'd3.min',       echarts: jsLibDir + 'echarts',       framework: jsDir + 'framework',       angularUtil: jsDir + 'angular-util',       standardDashboard: jsDir + 'standard-dashboard',       standardConsole: jsDir + 'standard-console',       standardAmountStatistic: jsDir + 'standard-amount-statistic',       standardReport: jsDir + 'standard-report',       standardAdvancedReport: jsDir + 'standard-advanced-report',       standardExpertAnswer: jsDir + 'standard-expert-answer',       standardService: jsDir + 'standard-service',       standardStrategyInform: jsDir + 'standard-strategy-inform',       standardMember: jsDir + 'standard-member',       standardSchedule: jsDir + 'standard-schedule',       standardChannel: jsDir + 'standard-channel',       standardStrategyMerge: jsDir + 'standard-strategy-merge',       standardIntegrate: jsDir + 'standard-integrate',       standardPersonalCenter: jsDir + 'standard-personal-center',       dateTimePicker: jsComponentDir + 'dateTimePicker/date-time-picker',       fullCalendar: jsComponentDir + 'fullCalendar/fullcalendar',       moment: jsComponentDir + 'fullCalendar/moment'     };          requirejs.config({       paths: paths,       shim: {         angular: {           exports : 'angular',           deps: ['jquery']         },         angularRoute: {           deps: ['angular']         },         jQueryMD5: {           deps: ['jquery']         }       },       //urlArgs: "timeStamp=" + (new Date()).getTime()       //urlArgs: 'v=1.47.1&t=20160719'     });     requirejs(['framework']);   }()); </script> 

2.framework.js作為首次加載的js,起到至關重要的作用哈??!定義frameworkApp模塊作為主模塊,另外加載公共服務utilmodel和ngRoute路由,定義一個resolveController方法,回調函數是requireJs,一會兒會講到!

//引入模塊 var frameworkApp = angular.module('FrameworkApp',['ngRoute', 'utilModule']); //加載對應的controller var resolveController = function (names, dependancies) {   //console.log(names)   //console.log(dependancies)   return {     loadController: ['$q', '$rootScope', function ($q, $rootScope) {       var defer = $q.defer();       require(names, function () {         defer.resolve();         $rootScope.$apply();       });       return defer.promise;     }]   }; }; 

3.配置路由,用resolve方法完成回調,注意回調的是一個list,值是步驟一中定義的模塊名稱

frameworkApp.config(['$routeProvider', '$controllerProvider', '$provide', '$compileProvider', '$filterProvider',   function ($routeProvider, $controllerProvider, $provide, $compileProvider, $filterProvider) {     frameworkApp.register = {       controller: $controllerProvider.register,       factory: $provide.factory,       service: $provide.service,       filter: $filterProvider.register,       directive: $compileProvider.directive     };     $routeProvider       .when('/',{         redirectTo: '/dashboard'       })       .when('/dashboard',{         templateUrl: 'dashboard.html',         controller: 'DashboardCtrl',         resolve: resolveController(['standardDashboard', 'd3','radialProgress','highcharts'])       })       .when('/console',{         templateUrl: 'console.html',         controller: 'ConsoleCtrl',         resolve: resolveController(['standardConsole'])       })       .when('/amountStatistic',{         templateUrl: 'amount-statistic.html',         controller: 'amountStatisticCtrl',         resolve: resolveController(['standardAmountStatistic','highcharts','dateTimePicker'])       })       .when('/report',{         templateUrl: 'report.html',         controller: 'ReportCtrl',         resolve: resolveController(['standardReport','dateTimePicker'])       })       .when('/advancedReport',{         templateUrl: 'advanced-report.html',         controller: 'advancedReportCtrl',         resolve: resolveController(['standardAdvancedReport','highcharts','dateTimePicker'])       })       .when('/expertAnswer',{         templateUrl: 'expert-answer.html',         controller: 'expertAnswerCtrl',         resolve: resolveController(['standardExpertAnswer'])       })       .when('/service',{         templateUrl: 'service.html',         controller: 'ServiceCtrl',         resolve: resolveController(['standardService'])       })       .when('/strategy-inform',{         templateUrl: 'strategy-inform.html',         controller: 'StrategyInformCtrl',         resolve: resolveController(['standardStrategyInform'])       })       .when('/member',{         templateUrl: 'member.html',         controller: 'MemberCtrl',         resolve: resolveController(['standardMember'])       })       .when('/schedule',{         templateUrl: 'schedule.html',         controller: 'ScheduleCtrl',         resolve: resolveController(['standardSchedule'])       })       .when('/channel',{         templateUrl: 'channel.html',         controller: 'ChannelCtrl',         resolve: resolveController(['standardChannel'])       })       .when('/strategy-merge',{         templateUrl: 'strategy-merge.html',         controller: 'StrategyMergeCtrl',         resolve: resolveController(['standardStrategyMerge'])       })       .when('/integrate',{         templateUrl: 'integrate.html',         controller: 'IntegrateCtrl',         resolve: resolveController(['standardIntegrate'])       })       .when('/personalCenter',{         templateUrl: 'personal-center.html',         controller: 'PersonalCenterCtrl',         resolve: resolveController(['standardPersonalCenter'])       })       .otherwise({         redirectTo: '/error'       });    }]); 

4.大功告成啦~完成controller切換,和js按需加載!??!啦啦啦!

5.有一點我也沒解決,在引入echarts的時候,用這種方法就報錯了,換成highcharts就可以了,折騰半天啊也沒把echarts引進來,不過到是發現,在require生效之前引入echarts的話,是可以的!求大神講解?。?!

<!-- start build -->   <script src="js/lib/echarts.js"></script>   <script src="js/lib/require.min.js"></script> 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产拍精品一二三| 久久夜色精品国产亚洲aⅴ| 91亚洲人电影| 国产精品96久久久久久| 国产在线视频不卡| 26uuu日韩精品一区二区| 日韩有码在线观看| 日日狠狠久久偷偷四色综合免费| 91欧美视频网站| 992tv成人免费影院| 国产一区二区精品丝袜| 国产啪精品视频| 日韩中文字幕精品| 亚洲精品网址在线观看| 亚洲精品女av网站| 日本视频久久久| 精品久久香蕉国产线看观看gif| 久久夜色精品国产欧美乱| 日韩电影免费在线观看中文字幕| 91精品国产综合久久久久久蜜臀| 性色av一区二区三区在线观看| 久久伊人精品一区二区三区| 色悠久久久久综合先锋影音下载| 精品国产电影一区| 最近2019年日本中文免费字幕| 国产精品亚洲激情| 欧美激情视频在线观看| 国产成人在线播放| 91人成网站www| 久久影视免费观看| 日韩大胆人体377p| 久久久女人电视剧免费播放下载| 欧美精品免费在线观看| 欧美国产日韩二区| 精品国产999| 正在播放欧美视频| 日韩在线一区二区三区免费视频| 影音先锋欧美在线资源| 国产欧美欧洲在线观看| 国产精品久久久久久久7电影| 精品偷拍一区二区三区在线看| 九九精品视频在线| 夜夜嗨av色一区二区不卡| 亲爱的老师9免费观看全集电视剧| 久久综合免费视频| 国产精品久久久久久久7电影| 亚洲视频电影图片偷拍一区| 国外成人免费在线播放| 亚洲美女福利视频网站| 欧美午夜精品久久久久久久| 日韩欧美一区视频| 在线亚洲午夜片av大片| 欧美丝袜美女中出在线| 亚洲视频精品在线| 久久福利视频导航| 国产91在线播放精品91| 97久久久免费福利网址| 国产剧情久久久久久| 这里只有精品视频在线| 国产精品一区电影| 亚洲国产天堂久久综合网| 中文字幕免费精品一区| 姬川优奈aav一区二区| 久久久国产精品x99av| 国产日韩在线免费| 国产成人短视频| 色综合天天狠天天透天天伊人| 亚洲毛茸茸少妇高潮呻吟| 久久久亚洲影院你懂的| 日产精品99久久久久久| 欧美一级淫片videoshd| 亚洲精品国产综合区久久久久久久| 亚洲国产成人91精品| 九九热99久久久国产盗摄| 成人欧美一区二区三区黑人孕妇| 精品国产欧美一区二区三区成人| 51精品国产黑色丝袜高跟鞋| 97国产成人精品视频| 亚洲人成电影网站色…| 91中文字幕在线| www.国产精品一二区| 久久天天躁狠狠躁夜夜av| 亚州国产精品久久久| 国产激情久久久久| 日韩中文有码在线视频| 午夜精品久久久久久久男人的天堂| 亚洲欧美日韩久久久久久| 国产精品欧美激情| 国产精品国产福利国产秒拍| 91精品视频网站| 66m—66摸成人免费视频| 97超碰国产精品女人人人爽| 草民午夜欧美限制a级福利片| 最好看的2019年中文视频| 在线亚洲欧美视频| 热久久99这里有精品| 国产aⅴ夜夜欢一区二区三区| 欧美一区二区视频97| 疯狂蹂躏欧美一区二区精品| 欧美精品成人91久久久久久久| 91老司机精品视频| 亚州欧美日韩中文视频| 欧美日韩激情视频| 国产成人精品免高潮费视频| 欧洲美女免费图片一区| 亚洲精品福利在线观看| 亚洲国产精品字幕| 国产精品揄拍一区二区| 一区二区福利视频| 欧美激情2020午夜免费观看| 久久99视频精品| 国产精品久久久久久久久| 日韩中文视频免费在线观看| 久久99亚洲热视| 久久人人爽人人爽人人片av高请| 国产精品www| 精品视频在线导航| 中文字幕久热精品在线视频| 欧美激情videos| 欧美日韩国产精品专区| 欧美成在线视频| 91精品美女在线| 亚洲色图欧美制服丝袜另类第一页| 欧美国产视频一区二区| 国产精品精品久久久久久| 精品露脸国产偷人在视频| 国产成人精品视频| 欧美中文在线观看国产| 国产精品ⅴa在线观看h| 久久天堂电影网| 亚洲免费人成在线视频观看| 欧美午夜精品久久久久久浪潮| 精品久久久国产| 国产精品久久久久久久电影| 欧美黄色三级网站| 国产suv精品一区二区| 欧美成人精品一区二区三区| 日韩在线激情视频| 欧美老女人在线视频| 国产精品一区二区三| 久久精品成人一区二区三区| 亚洲精品福利免费在线观看| 国产狼人综合免费视频| 国产精品白丝jk喷水视频一区| 国产成人精品av在线| 欧美日韩福利在线观看| 伊人伊成久久人综合网站| 91免费精品视频| 九九久久国产精品| 欧美电影在线观看网站| 中文字幕在线国产精品| 久久亚洲精品中文字幕冲田杏梨| 91av在线播放视频| 久久综合网hezyo| 日韩亚洲欧美中文在线| 国产精品免费一区豆花| 在线观看国产欧美| 国产精品自拍网| 狠狠色狠狠色综合日日五| 草民午夜欧美限制a级福利片| 97福利一区二区| 日本精品视频在线| 亚洲一区二区久久久久久久| 成人观看高清在线观看免费|