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

首頁 > 學院 > 開發設計 > 正文

html5Mode

2019-11-06 09:55:34
字體:
來源:轉載
供稿:網友

無刷新切換路由,即url變了,加載了相應的模板,但是框架模板頁index.html卻沒有刷新。為了實現這個功能,angularjs針對新舊瀏覽器提供了兩種方式, 針對老式瀏覽器可以使用標簽模式, 針對現代瀏覽器可以使用HTML5模式。 前者在URL中使用#來防止頁面刷新,同時形成瀏覽器歷史記錄。 具體形式如下

http://yoursite.com/#!/inbox/all

AngularJS支持的另外一種路由模式是 html5 模式。在這個模式中,URL看起來和普通的URL一樣(在老式瀏覽器中看起來還是使用標簽的URL)。例如,同樣的路由在HTML5模式中看起來 是這樣的:

http://yoursite.com/inbox/all

在AngularJS內部, location 服務通過HTML5歷史API讓應用能夠使用普通的URL路徑來路由。當瀏覽器不支持HTML5歷史API時, location 服務會自動使用標簽模式的URL作為替代方案。 兩者之間的切換通過$locationPRovider.html5Mode進行切換。

1、當設置

$locationProvider.html5Mode(true);

angualar 默認會將其定位到服務器根目錄, 比如

http://192.168.22.137:8080//page/Book/book.html

會被反轉成

http://192.168.22.137:8080

此時設置ng-view,時如下

<a href="/page/Book/Moby">Moby</a>

路由配置如下:

$routeProvider.when('/page/Book/:bookId', { templateUrl: 'book.html', controller: BookCntl, controllerAs: 'book' })

2、當設置

$locationProvider.html5Mode(false);//默認false

angualar 默認會url作處理,比如

http://192.168.22.137:8080//page/Book/book.html

會被反轉成

http://192.168.22.137:8080//page/Book/book.html

此時設置ng-view,時如下

<a href="#/Moby">Moby</a>

路由配置如下:

$routeProvider.when('/:bookId', { templateUrl: 'book.html', controller: BookCntl, controllerAs: 'book' })

示例:

book.html

controller: {{name}}<br />Book Id: {{params.bookId}}<br />

chapter.html

controller: {{name}}<br/>Book Id: {{params.bookId}}<br/>Chapter Id: {{params.chapterId}}

不使用 $locationProvider.html5Mode(true);

index.html

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>My AngularJS App</title> <script src="http://sandbox.runjs.cn/uploads/rs/376/pbcx3e1z/angular.min.js"></script> <script src="http://sandbox.runjs.cn/uploads/rs/376/pbcx3e1z/angular-route.min.js"></script> <script type="text/javascript"> angular.element(document.getElementsByTagName('head')) .append(angular.element('<base href="' + window.location.pathname + '" />')); </script></head><body ng-app="ngRouteExample"><div ng-controller="MainController"> 選一個: <a href="#Book/Moby">Moby</a> | <a href="#Book/Moby/ch/1">Moby: Ch1</a> | <a href="#Book/Gatsby">Gatsby</a> | <a href="#Book/Gatsby/ch/4?key=value">Gatsby: Ch4</a> | <a href="#Book/Scarlet">Scarlet Letter</a><br/> <div ng-view></div> <hr/> <pre>$location.path() = {{$location.path()}}</pre> <pre>$route.current.templateUrl = {{$route.current.templateUrl}}</pre> <pre>$route.current.params = {{$route.current.params}}</pre> <pre>$route.current.scope.name = {{$route.current.scope.name}}</pre> <pre>$routeParams = {{$routeParams}}</pre></div><script src="script.js"></script></body></html>

script.js

/** * Created by Administrator on 2017/2/27. */(function (angular) { 'use strict'; /*將"use strict"放在腳本文件的第一行,則整個腳本都將以"嚴格模式"運行。 * 將"use strict"放在函數體的第一行,則整個函數以"嚴格模式"運行。 * 設立"嚴格模式"的目的,主要有以下幾個:   - 消除Javascript語法的一些不合理、不嚴謹之處,減少一些怪異行為;   - 消除代碼運行的一些不安全之處,保證代碼運行的安全;   - 提高編譯器效率,增加運行速度;   - 為未來新版本的Javascript做好鋪墊。*/ angular.module('ngRouteExample', ['ngRoute']) .controller('MainController', function ($scope, $route, $routeParams, $location) { $scope.$route = $route; $scope.$location = $location; $scope.$routeParams = $routeParams; // $scope.$on('$routeChangeSuccess', function(evt, next, previous) { // debugger; // }); }) .controller('BookController', function ($scope, $routeParams) { $scope.name = "BookController"; $scope.params = $routeParams; }) .controller('ChapterController', function ($scope, $routeParams) { $scope.name = "ChapterController"; $scope.params = $routeParams; }) .config(function ($routeProvider, $locationProvider) { $routeProvider//不使用$locationProvider.html5Mode(true); /*http://localhost:63342/untitled18/app/index7.html #/Book/Scarlet*/ /*http://localhost:63342/untitled18/app/index7.html #/Book/Gatsby*/ /*http://localhost:63342/untitled18/app/index7.html #/Book/Moby */ .when('/Book/:bookId', { templateUrl: 'book.html', controller: 'BookController', resolve: { // 1秒延遲 delay: function ($q, $timeout) { var delay = $q.defer(); $timeout(delay.resolve, 1000); return delay.promise; } } })//不使用$locationProvider.html5Mode(true);/*http://localhost:63342/untitled18/app/index7.html #/Book/Gatsby/ch/4?key=value*//*http://localhost:63342/untitled18/app/index7.html #/Book/Moby/ch/1*/ .when('/Book/:bookId/ch/:chapterId', { templateUrl: 'chapter.html', controller: 'ChapterController' }); // configure html5 to get links working on jsfiddle // $locationProvider.html5Mode(true);//不使用h5mode /**/ });})(window.angular);

使用 $locationProvider.html5Mode(true);

index.html

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>My AngularJS App</title> <script src="http://sandbox.runjs.cn/uploads/rs/376/pbcx3e1z/angular.min.js"></script> <script src="http://sandbox.runjs.cn/uploads/rs/376/pbcx3e1z/angular-route.min.js"></script> <script type="text/javascript"> angular.element(document.getElementsByTagName('head')) .append(angular.element('<base href="' + window.location.pathname + '" />')); </script></head><body ng-app="ngRouteExample"><div ng-controller="MainController"> 選一個: <a href="Book/Moby">Moby</a> | <a href="Book/Moby/ch/1">Moby: Ch1</a> | <a href="Book/Gatsby">Gatsby</a> | <a href="Book/Gatsby/ch/4?key=value">Gatsby: Ch4</a> | <a href="Book/Scarlet">Scarlet Letter</a><br/> <div ng-view></div> <hr/> <pre>$location.path() = {{$location.path()}}</pre> <pre>$route.current.templateUrl = {{$route.current.templateUrl}}</pre> <pre>$route.current.params = {{$route.current.params}}</pre> <pre>$route.current.scope.name = {{$route.current.scope.name}}</pre> <pre>$routeParams = {{$routeParams}}</pre></div><script src="script.js"></script></body></html>

script.js

/** * Created by Administrator on 2017/2/27. */(function (angular) { 'use strict'; /*將"use strict"放在腳本文件的第一行,則整個腳本都將以"嚴格模式"運行。 * 將"use strict"放在函數體的第一行,則整個函數以"嚴格模式"運行。 * 設立"嚴格模式"的目的,主要有以下幾個:   - 消除Javascript語法的一些不合理、不嚴謹之處,減少一些怪異行為;   - 消除代碼運行的一些不安全之處,保證代碼運行的安全;   - 提高編譯器效率,增加運行速度;   - 為未來新版本的Javascript做好鋪墊。*/ angular.module('ngRouteExample', ['ngRoute']) .controller('MainController', function ($scope, $route, $routeParams, $location) { $scope.$route = $route; $scope.$location = $location; $scope.$routeParams = $routeParams; // $scope.$on('$routeChangeSuccess', function(evt, next, previous) { // debugger; // }); }) .controller('BookController', function ($scope, $routeParams) { $scope.name = "BookController"; $scope.params = $routeParams; }) .controller('ChapterController', function ($scope, $routeParams) { $scope.name = "ChapterController"; $scope.params = $routeParams; }) .config(function ($routeProvider, $locationProvider) { $routeProvider //使用$locationProvider.html5Mode(true); /*http://localhost:63342/untitled18/app /Book/Scarlet*/ /*http://localhost:63342/untitled18/app /Book/Gatsby*/ /*http://localhost:63342/untitled18/app /Book/Moby*/ .when('/Book/:bookId', { templateUrl: 'book.html', controller: 'BookController', resolve: { // 1秒延遲 delay: function ($q, $timeout) { var delay = $q.defer(); $timeout(delay.resolve, 1000); return delay.promise; } } }) //使用$locationProvider.html5Mode(true); /*http://localhost:63342/untitled18/app /Book/Gatsby/ch/4?key=value*/ /*http://localhost:63342/untitled18/app /Book/Moby/ch/1*/ .when('/Book/:bookId/ch/:chapterId', { templateUrl: 'chapter.html', controller: 'ChapterController' }); // configure html5 to get links working on jsfiddle $locationProvider.html5Mode(true);//使用html5mode /**/ });})(window.angular);

使用了$locationProvider.html5Mode(true);,如果要轉換成不使用html5mode

1、

<a href="Book/Moby">Moby</a>

在其href參數前加一個“#”,變成

<a href="#Book/Moby">Moby</a> |

2、去掉$locationProvider.html5Mode(true);,或者設置為false。 3、得到的url對比:

//使用$locationProvider.html5Mode(true); /*http://localhost:63342/untitled18/app /Book/Gatsby/ch/4?key=value*/ /*http://localhost:63342/untitled18/app /Book/Moby/ch/1*/ //不使用$locationProvider.html5Mode(true); /*http://localhost:63342/untitled18/app/index7.html #/Book/Gatsby/ch/4?key=value*/ /*http://localhost:63342/untitled18/app/index7.html #/Book/Moby/ch/1*/ .when('/Book/:bookId/ch/:chapterId', { templateUrl: 'chapter.html', controller: 'ChapterController' });
上一篇:責任鏈模式

下一篇:RecyclerView 必知必會

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久艹在线视频| 国产午夜精品一区理论片飘花| 国产一区二区丝袜| 久久精品99久久香蕉国产色戒| 欧美成人四级hd版| 欧美日本精品在线| 欧美成人合集magnet| 亚洲精品99久久久久中文字幕| 日韩成人在线视频网站| 91色p视频在线| 538国产精品一区二区在线| 正在播放欧美视频| 97碰碰碰免费色视频| 久久久女人电视剧免费播放下载| 中文字幕久久久av一区| 国产精品成人一区| 国产精品v片在线观看不卡| 伊人一区二区三区久久精品| 欧美乱大交xxxxx另类电影| 欧美大片大片在线播放| 高清在线视频日韩欧美| 亚洲深夜福利视频| 精品亚洲男同gayvideo网站| 日韩av大片免费看| 亚洲最大的av网站| 亚洲国产精品久久久久| 国产成人一区二区| 久久亚洲成人精品| 伊人久久久久久久久久久| 欧美激情视频网站| 色妞色视频一区二区三区四区| 一区二区成人av| 日韩av成人在线| 美女av一区二区三区| 久久久久这里只有精品| 在线电影av不卡网址| 国产精品美女主播在线观看纯欲| 国产精品综合不卡av| 欧美高清视频在线观看| 精品视频—区二区三区免费| 国产精品h在线观看| 亚洲精品av在线| 日韩中文字幕亚洲| 国产精品亚洲综合天堂夜夜| 久久精品中文字幕一区| 亚洲欧美国产视频| 美女国内精品自产拍在线播放| 北条麻妃一区二区三区中文字幕| 国内久久久精品| 91色在线视频| 欧美极品xxxx| 成人黄色在线播放| 欧美激情久久久久| 神马久久桃色视频| 最新的欧美黄色| 国产精品ⅴa在线观看h| 亚洲精品一区二区在线| 日韩中文字幕在线视频| 91久久久久久久久久久| 成人国产在线视频| 欧美成人黑人xx视频免费观看| 亚洲天堂网站在线观看视频| 亚洲r级在线观看| 97成人在线视频| 色青青草原桃花久久综合| 日韩男女性生活视频| 欧美人在线观看| 黄色91在线观看| 亚洲国产精久久久久久| 久久亚洲精品中文字幕冲田杏梨| 国产精品久久久久久久久久尿| 日韩av成人在线观看| 尤物精品国产第一福利三区| 国产精品综合网站| 国产精品美女久久久免费| 欧美美女18p| 国产精品美女www| 欧美综合在线第二页| 91精品国产色综合久久不卡98| 亚洲欧洲一区二区三区在线观看| 日韩中文字幕在线| 国产高清在线不卡| 欧美性猛交xxxx久久久| 久久久噜噜噜久久久| 久久久久久久久国产精品| 精品国产一区av| 色老头一区二区三区在线观看| 亚洲免费一级电影| 亚洲第一网站男人都懂| 久久国产精品亚洲| 这里只有精品在线播放| 精品国内亚洲在观看18黄| 日韩欧美aaa| 亚洲国产精品成人精品| 欧美最猛性xxxxx(亚洲精品)| 国外成人免费在线播放| 色婷婷成人综合| 中文字幕欧美在线| 国产精品美女久久久久久免费| 日韩亚洲国产中文字幕| 国产精品91视频| 久久免费少妇高潮久久精品99| 日韩成人在线播放| 97精品一区二区视频在线观看| 久久久噜噜噜久久中文字免| 国产精品极品美女在线观看免费| 欧美wwwxxxx| 国外日韩电影在线观看| 久久精品99国产精品酒店日本| 久久亚洲综合国产精品99麻豆精品福利| 欧美精品成人在线| 高清亚洲成在人网站天堂| 欧美在线免费视频| 国产精品啪视频| 日韩av手机在线看| 久久精品国亚洲| 91久久在线视频| 91av免费观看91av精品在线| 中文字幕久热精品在线视频| 久久福利网址导航| 久久精品视频一| 欧美成人性色生活仑片| 日本久久精品视频| 欧美一级淫片播放口| 国产成人+综合亚洲+天堂| 91老司机在线| 成人www视频在线观看| 日韩电影中文字幕av| 久久99久久99精品中文字幕| 欧美精品日韩三级| 欧美性精品220| 欧美第一黄色网| 91精品国产91久久久久久不卡| 成人福利在线视频| 亚洲第一二三四五区| 亚洲永久免费观看| 国语自产在线不卡| 午夜精品一区二区三区视频免费看| 国产成人在线播放| 国产精品久久97| 欧美日韩国产一区二区三区| 亚州精品天堂中文字幕| 中文字幕自拍vr一区二区三区| 欧美日韩中文字幕日韩欧美| 亚洲精品免费在线视频| 欧美国产日产韩国视频| 日本精品久久久久久久| 欧美精品一二区| 亚洲少妇中文在线| 欧美精品激情在线观看| 国产精品91免费在线| 国产精品视频中文字幕91| 午夜欧美不卡精品aaaaa| 成人免费观看a| 97国产精品久久| 久久伊人91精品综合网站| 日韩av三级在线观看| 日韩中文字幕在线播放| 成人免费高清完整版在线观看| 国产日韩专区在线| 最近2019年手机中文字幕| 亚洲欧洲日产国产网站| 久久国内精品一国内精品| 国产视频999|