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

首頁 > 編程 > JavaScript > 正文

簡單講解AngularJS的Routing路由的定義與使用

2019-11-20 10:26:50
字體:
供稿:網(wǎng)友

在單頁面應(yīng)用中,視圖之間的跳轉(zhuǎn)就顯尤為重要的,隨著應(yīng)用越來越復(fù)雜,我們需要用一種方法來精確控制什么時候該呈現(xiàn)怎樣的頁面給用戶。

咱們可以通過在主頁面中引入不同的模板來支持不同頁面的切換,但是這么做的缺點就是,越來越多的內(nèi)嵌代碼導(dǎo)致最后難以管理。

通過ng-include指令我們可以把很多的模板整合在視圖中,但是我們有更好的方法來處理這種情況,我們可以把視圖打散成layout和模板視圖,然后根據(jù)用戶訪問的特定的URL來顯示需要的視圖

我們可以將這些“碎片”在一個布局模板中拼接起來

AngularJS通過在$routeProvider($route服務(wù)的提供者)上聲明routes來實現(xiàn)上面的構(gòu)想

使用$routeProvider,我們可以更好的利用瀏覽歷史的API并且可以讓用戶可以把當(dāng)前路徑存成書簽以方便以后的使用

在我們的應(yīng)用中設(shè)定路由,我們需要做兩件事情:第一,我們需要指出我們存放將要存放新頁面內(nèi)容的布局模板在哪里。比如,如果我們想在所有頁面都配上header和footer,我們可以這樣設(shè)計布局模板:

<header> <h1>Header</h1></header><div class="content"> <div ng-view></div></div><footer> <h5>Footer</h5></footer>

ng-view指令將高速$routeProvider在哪里渲染模板

第二,我們需要配置我們的路由信息,我們將在應(yīng)用中配置$routeProvider

$routeProvider提供了兩種方法處理路由:when和otherwise。 方法when接收兩個參數(shù),第一個設(shè)置$location.path(). (直接用“//”也沒有問題)


定義
定義路由非常容易,在我們的應(yīng)用mian模塊里面注入ngRoute依賴就可以了

angular.module('myApp', ['ngRoute']) .config(function($routeProvider) {});

現(xiàn)在,我們就可以給應(yīng)用定義路由了。在路由模塊里面的.config()方法里面注入了$routeProvider,上面的代碼給我們演示了兩個用于定義路由的方法。

when()

when()方法有兩個參數(shù),我們希望匹配的瀏覽器url和路由操作對象。一般main route經(jīng)常使用“/”來表示,也可以定義URL參數(shù),在controller里面就使用$routeParams獲取url參數(shù)。

templateUrl: 表示路由跳轉(zhuǎn)的view模板

controller: 控制器

angular.module('myApp', ['ngRoute'])  .config(function($routeProvider) {   $routeProvider    .when('/', {     templateUrl: 'views/main.html',     controller: 'MainCtrl'    })    .when('/day/:id', {     templateUrl: 'views/day.html',     controller: 'DayCtrl'    })

otherwise()

otherwise()定義了當(dāng)應(yīng)用找不到指定路由的時候跳轉(zhuǎn)的路由

angular.module('myApp', ['ngRoute']).config(function($routeProvider) { $routeProvider  .when('/', {   templateUrl: 'views/main.html',   controller: 'MainCtrl'  })  .when('/day/:id', {   templateUrl: 'views/day.html',   controller: 'DayCtrl'  })  .otherwise({   redirectTo: '/'  });})

使用
定義好了路由需要怎么使用呢?我們要告訴angular頁面的哪一個部分是我們希望轉(zhuǎn)換的,這需要使用到ng-view指令

<div class="header">My page</div><div ng-view></div><span class="footer">A footer</span>

這樣就只有<div ng-view></div>會被更新, header/footer都始終保持不變

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 时尚| 铜梁县| 中宁县| 万源市| 海城市| 甘肃省| 赤水市| 青海省| 吴江市| 柯坪县| 新巴尔虎右旗| 井冈山市| 荔浦县| 石嘴山市| 习水县| 常山县| 平和县| 台南县| 张掖市| 吴川市| 五大连池市| 许昌市| 高尔夫| 灵丘县| 沙坪坝区| 罗源县| 青神县| 鄂温| 东乡| 南开区| 高邑县| 新绛县| 特克斯县| 平塘县| 全州县| 临猗县| 冕宁县| 沂南县| 内江市| 油尖旺区| 福清市|