之前有在服務器端接觸到angular路由切換,今天想在本地實現路由,搗鼓半天終於成功了,特把步驟整理分享下,免得大家走彎路!
1.首先引入angular.min.js和angular-route.min.js
2.然後我們來寫框架index.html,index裏面裝的是所有頁面都有的nav導航和footer頁腳(我這個demo裏只有nav),模板文件page1.html,page2.html,也就是中間路由切換的部分
index.html代碼如下:
<span style="font-size:14px;"><!DOCTYPE html>
<html>
<head>
<title>angular js 路由</title>
<script type="text/javascript" src="js/angular.min.js"></script>
<script type="text/javascript" src="js/angular-route.min.js"></script>
<script type="text/javascript" src="js/controllers.js"></script>
<style type="text/css">
li{list-style-type: none;
float: left;
margin-right: 25px;
}
</style>
</head>
<body ng-app="RoutingApp">
<ul>
<li><a href="#page1">go page 1</a></li>
<li><a href="#page2">go page 2</a></li>
<li><a href="#other">to other page</a></li>
</ul>
<div ng-view></div>
</body>
</html></span>
page1.html代碼如下:
<span style="font-size:14px;"><p>this is page 1</p></span>
page2.html代碼如下:
<span style="font-size:14px;"><p>this is page 2</p></span>
3.其次來寫controllers.js,說明見註釋
<span style="font-size:14px;">angular.module("RoutingApp", ["ngRoute"]) //定義路由 在應用模塊RoutingApp裏注入ngRoute
.config(['$routeProvider', function ($routeProvider) { //在路由模塊裏面的.config()方法裏面注入了$routeProvider
$routeProvider
.when("/page1", { //templateUrl: 表示路由跳轉的view模板
templateUrl: "page1.html"
})
.when("/page2", {
templateUrl: "page2.html"
})
.otherwise({
redirectTo: "/"
});
}]);</span>
4.要想實現angular路由的本地切換必須要在本地有個服務器的環境,我是用python搭建的,很簡單的呦!新建一個python文件拷貝以下代碼
<span style="font-size:14px;">import http.server
def start_server(port=8000, bind="", cgi=False):
if cgi==True:
http.server.test(HandlerClass=http.server.CGIHTTPRequestHandler, port=port, bind=bind)
else:
http.server.test(HandlerClass=http.server.SimpleHTTPRequestHandler, port=port, bind=bind)
start_server() #If you want cgi, set cgi to True e.g. start_server(cgi=True)</span>
5.在桌面上新建一個叫lemonServer的文件夾,並把所有文件扔進去,得到如下文件目錄
6.運行python文件結果如下,這段代碼的意思是,把python文件所在的目錄搭建成一個簡單的服務器
7.打開瀏覽器輸入localhost:8000/index.html就可以看到剛纔建立的index.html了,點擊鏈接完成路由操作,是不是很簡單呢!