国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

AngularJS通過(guò)ng-route實(shí)現(xiàn)基本的路由功能實(shí)例詳解

2019-11-19 18:31:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了AngularJS通過(guò)ng-route實(shí)現(xiàn)基本的路由功能。分享給大家供大家參考,具體如下:

為什么需要前端路由~

(1)AJAX不會(huì)留下History歷史記錄

(2)用戶無(wú)法通過(guò)URL進(jìn)入應(yīng)用指定的頁(yè)面(書(shū)簽或者分享等)

(3)AJAX對(duì)于SEO是一個(gè)災(zāi)難

1.一般情況下,我們?cè)L問(wèn)網(wǎng)頁(yè)的時(shí)候,是通過(guò)url地址。
比如我們?cè)L問(wèn)一個(gè)網(wǎng)頁(yè):https://www.baidu.com/index/fix.html

在AngularJS中通過(guò)“#”來(lái)進(jìn)行不同頁(yè)面的路由,比如:
https://www.baidu.com/#/first,這個(gè)請(qǐng)求在向網(wǎng)頁(yè)端傳輸?shù)臅r(shí)候,服務(wù)器會(huì)自動(dòng)忽略#之后的內(nèi)容,因此可以根據(jù)#+標(biāo)記幫助我們區(qū)分不同的邏輯頁(yè)面并將不同的頁(yè)面綁定到對(duì)應(yīng)的控制器上。

這是一個(gè)簡(jiǎn)單的路由控制界面,根據(jù)鏈接中的#/first和#/second分別對(duì)應(yīng)跳轉(zhuǎn)到不同的頁(yè)面。

2.通過(guò)angularjs中的路由模塊,實(shí)現(xiàn)ng-route的步驟

(1)載入包含ng-route的JS文件

(2)包含了 ngRoute 模塊作為主應(yīng)用模塊的依賴(lài)模塊。

(3)使用原生指令ng-view

(4)我們?cè)趆tml中定義鏈接,可以實(shí)現(xiàn)一個(gè)單頁(yè)應(yīng)用,比如鏈接可以這樣定義:

<body> <ul>  <li><a href="#/">首頁(yè)</a></li>  <li><a href="#/first">第一頁(yè)面</a></li>  <li><a href="#/second">第二頁(yè)面</a></li>  <li><a href="#/third">第三頁(yè)面</a></li></ul>  <div ng-view></div></body>

在js中的定義路由代碼為:

angular.module('myapp',['ngRoute']).config(['$routeProvider',function($routeProvider){  $routeProvider.when('/',{template:'這是首頁(yè)頁(yè)面'})         .when('/first',{template:'這是第一個(gè)頁(yè)面'})         .when('/second',{template:'這是第二個(gè)頁(yè)面'})         .when('/third',{template:'這是第三個(gè)頁(yè)面'})         .otherwise({redirectTo:'/'});}]);

(6)我們來(lái)看效果,首次當(dāng)未有鏈接切換時(shí)候,默認(rèn)的跳轉(zhuǎn)到首頁(yè),效果如下:

當(dāng)依次點(diǎn)擊鏈接時(shí),會(huì)依次切換ng-view中的值,并且實(shí)現(xiàn)了ng-view內(nèi)內(nèi)容的替換~

I)初始效果

II)切換后的效果

我們發(fā)現(xiàn)改變的僅僅是#后的值,并沒(méi)有頁(yè)面的跳轉(zhuǎn)和刷新

3.angularJS中的路由設(shè)置對(duì)象

AngularJS 路由也可以通過(guò)不同的模板來(lái)實(shí)現(xiàn)。

$routeProvider.when 函數(shù)的第一個(gè)參數(shù)是 URL 或者 URL 正則規(guī)則,第二個(gè)參數(shù)為路由配置對(duì)象。

路由配置對(duì)象語(yǔ)法規(guī)則如下:

$routeProvider.when(url, {  template: string,  templateUrl: string,  controller: string, function 或 array,  controllerAs: string,  redirectTo: string, function,  resolve: object<key, function>});

參數(shù)解釋?zhuān)?/p>

(1)template:

使用該概述,可以在template中寫(xiě)入HTML內(nèi)容,典型的例子是:

when('/',{template:'這是首頁(yè)頁(yè)面'})

(2)templateUrl:
如果現(xiàn)在我們并不是要HTML內(nèi)容,而是需要一個(gè)模板文件來(lái)進(jìn)行整體替換,例子如下:

$routeProvider.when('/computers', {  templateUrl: 'views/computers.html',});

(3)controller:function、string或數(shù)組類(lèi)型,在當(dāng)前模板上執(zhí)行的controller函數(shù),生成新的scope。
也可以對(duì)應(yīng)的是控制器的名稱(chēng)。

(4)redirectTo:重定向的地址

(5)resolve:當(dāng)前控制器所依賴(lài)的其他模塊~

更多關(guān)于AngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《AngularJS入門(mén)與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)

希望本文所述對(duì)大家AngularJS程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 隆德县| 井陉县| SHOW| 乌兰县| 武乡县| 桃园市| 长垣县| 桂林市| 富阳市| 罗江县| 苏尼特左旗| 桐庐县| 尉氏县| 宁阳县| 太原市| 东辽县| 阿鲁科尔沁旗| 株洲市| 临朐县| 克什克腾旗| 高青县| 庆阳市| 稷山县| 金阳县| 馆陶县| 洪湖市| 苗栗市| 板桥市| 华池县| 高雄市| 集贤县| 太康县| 巫山县| 岳池县| 合水县| 芦溪县| 南投县| 盘锦市| 平顶山市| 德钦县| 柘城县|