1.介紹 ui-router
ui-router被認為是AngularUI為開發者提供的最實用的一個子產品,它是一個讓開發者能夠根據URL狀态或者說是’機器狀态’來組織和控制界面UI的渲染,而不是僅僅隻改變路由(傳統AngularJS應用實用的方式)。該子產品為開發者提供了很多最視圖(view)額外的控制。開發者可以建立嵌套分層的視圖、在同一個頁面使用多個視圖、讓多個視圖控制某個視圖等更多的功能。即使是非常複雜的web應用,UI-Router也可以極佳地駕馭。
2. 做個簡單的路由跳轉:
引入js檔案
1. 我們需要引入AngularJS架構
2. 我們需要引入ui-router架構.
1.建立三個頁面
- Page1.html
<div>
<div>
<h1>Page 1 content goes here...</h1>
</div>
</div>
- Page2.html
<div>
<div>
<h1>Page 2 content goes here...</h1>
</div>
</div>
- Page3.html
<div>
<div>
<h1>Page 3 content goes here...</h1>
</div>
</div>
4.Home頁面引用上面頁面
<div ng-app='app'>
<div class="col-md-3" ng-controller="myCtrl">
<h2>angular路由應用</h2>
<div>
<span style="width:100px" ui-sref=".Page1"><a href="" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >Page-1</a></span>
<span style="width:100px" ui-sref=".Page2"><a href="" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >Page-2</a></span>
<span style="width:100px" ui-sref=".Page3"><a href="" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >Page-3</a></span>
<span style="width:100px" ui-sref=".About"><a href="" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" >About.cshtml3</a></span>
</div>
<div>
<div ui-view="" />
</div>
</div>
</div>
實作效果如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL3EjN5AjNzYTM3IjMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
以上是頁面,下面是angular部分
1. 聲明子產品,并且注入ui.router服務
var arM = angular.module('app', ['ui.router']);
2.在config中配置路由,注入stateProvider和urlRouterProvider服務
arM.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.when('', '/Page3.html'); //$urlRouterProvider初始化跳轉的狀态,首先想展示哪一個頁面
$stateProvider
.state("Page1", {
url: "/Page1",
templateUrl: "/Page1.html",
})
.state("Page2", {
url: "/Page2",
templateUrl: "/Page2.html"
})
.state("Page3", {
url: "/Page3",
templateUrl: "/Page3.html"
}).state("About", {
url: "/aaaa/Page4111",
templateUrl: "/Home/Contact"
})
});
單獨把路由的部分拉出來解釋,解釋如下,1.2.3
- state後面緊跟着的Page1 是對應上面html中ui-sref中名稱
- url中的字元串是顯示在浏覽器中的路由名稱
Angularjs之ui-router的簡單實用 - templateUrl是通路的具體路徑(檔案放在那裡的事實路徑)
是專門用來存放跳轉的頁面,裡面的嵌套會變成 ng-scope
<div ui-view="" />
參考文檔:https://www.oschina.net/translate/angularjs-ui-router-nested-routes?print