angular.js中 路由 用法及概念


  在開講之前,首先談談APP應用。平時我們用的app總是多頁面,如果用原生安卓或者蘋果,那當然很流暢啦。但是當我們用一般的html頁面做移動端,簡單時候我們可以用<a href=""></a>這樣的標簽去鏈接頁面時,速度還是可以的。

  但是當我們的應用越來越多時,切換起來沒那么流暢。又是礙於網速,頁面加載進來有點慢。但是在angular里面,我們可以用路由進行切換。因為在angular里面,我們用戶一般在加載這樣的應用時,會整個的緩存在手機上。我們用路由進行切換時,不用再發起HTTP請求了。體驗比原來好。

  一般我們的路由結構是這樣的。

  

 1     <script>
 2         angular.module('app',[])
 3             .config('$routeProvider',function  ($routeProvider) {
 4                 $routeProvider
 5                     .when('/',{
 6                         templateUrl:'view/home.html',
 7                         controller:'homeCtrl'
 8                         }
 9                         )
10                     .when('/',{
11                         templateUrl:'view/home.html',
12                         controller:'homeCtrl'
13                         }
14                         )
15                     .when('/',{
16                         templateUrl:'view/home.html',
17                         controller:'homeCtrl'
18                         }
19                         )
20                     .ontherwise({
21                         redirective:'/'
22                     })
23             })
24     </script>

上邊代碼中,

config函數是一個配置函數。在使用
$routeProvider這樣的一個服務。
when:代表當你訪問這個“/”根目錄的時候 去訪問 templateUrl中的那個模板。 controller可想已知,就是我們配套的controller,就是應用於根目錄的這個 模板時的controller。
ontherwise 就是當你路徑訪問錯誤時,找不到。最后跳到這個默認的 頁面。 

  一般在我們的index.html會有這么的一段代碼

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

  <div ng-view></div>   這里面呢。就是我們注入的某個模板(template) 例如:<div ng-view=“tpl/abc.html”></div> 就相當於注入叫做abc.html的模板。ng-view這個指令優先級是1000的終極指令。就是說權限很高。

  在注入這個abc.html的模板的時候。我們一般都用了路由設置,路由相當於一個遙控器。這個ng-view就是一部電視機。如果某個模板同當前的路由相關聯:
1 創建一個新的作用域;(用路由(遙控器)打開某個電視台)
2 移除上一個視圖,同時上一個作用域也會被清除;(換台,什么都沒了
3 將新的作用域同當前模板關聯在一起;(電視機播放新的電視台
4 如果路由中有相關的定義,那么就把對應的控制器同當前作用域關聯起來;
5 觸發$viewContentLoaded事件;
6 如果提供了onload屬性,調用該屬性所指定的函數。

    $location 服務
AngularJS提供了一個服務用以解析地址欄中的URL,並讓你可以訪問應用當前路徑所對應
的路由。它同樣提供了修改路徑和處理各種形式導航的能力。
  我們一般比較常用的:
 1. path()
  path() 用來獲取頁面當前的路徑:
  $location.path(); // 返回當前路徑
  修改當前路徑並跳轉到應用中的另一個URL:
  $location.path('/'); // 把路徑修改為 '/' 路由
  2. replace()
  如果你希望跳轉后用戶不能點擊后退按鈕(對於登錄之后的跳轉這種發生在某個跳轉之后的
  再次跳轉很有用), AngularJS提供了replace() 方法來實現這個功能:
  $location.path('/home');
  $location.replace();
  // 或者
  $location.path('/home').replace();



。。。。。。后續

 


免責聲明!

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



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