Angular路由的定義和使用


原文鏈接:http://www.ng-newsletter.com/advent2013/#!/day/2

一、什么是routing(路由)

Almost all non-trivial, non-demo Single Page App (SPA) require multiple pages. A settings page is different from a dashboard view. The login page is different from an accounts page(設置頁面不同於控制頁面,登錄頁面不同於賬號信息頁面。。。。就是說一個應用很多功能不同的頁面)

我們可以使用Angular簡單優雅地實現這個功能(頁面之間的控制跳轉...)

二、安裝

使用angular的路由功能需要安裝routing模塊...(引入angular-route.js就可以了)

三、定義

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

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

 

 

 

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

when()

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

  • templateUrl: 表示路由跳轉的view模板

  • controller: 控制器

?
1
2
3
4
5
6
7
8
9
10
11
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()定義了當應用找不到指定路由的時候跳轉的路由

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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頁面的哪一個部分是我們希望轉換的,這需要使用到ng-view指令

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

 

 

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM