1. 程式人生 > >a標籤跳轉到配置有angular路由的頁面,並控制顯示view中的內容

a標籤跳轉到配置有angular路由的頁面,並控制顯示view中的內容

今天,工作上遇到一個問題,問題描述:

一個頁面(取名:頁面1),這個頁面有三個tab切換,這三個tab切換的內容要用angularjs的路由來配置,點選tab後可以切換內容。在其它地方,有三個連線,都可以連線到這個頁面(頁面1),只是連線到頁面1後顯示的tab內容不同,這個該怎麼寫?

如圖


我的解決思路:

angular的路由機制是根據連結的hash值來實現路由切換的,那麼在點選三個連線的時候可以設定hash值,在js中獲取到hash值,賦在路由的otherwise上即可

程式碼如下:

1.這是三個連線所在的頁面

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<ul>
		<li>
			<a href="hash.html#a">點選跳轉到頁面,內容為a</a>
		</li>
		<li>
			<a href="hash.html#b">點選跳轉到頁面,內容為b</a>
		</li>
		<li>
			<a href="hash.html#c">點選跳轉到頁面,內容為c</a>
		</li>
	</ul>
</body>
</html>

2.這是頁面1
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>hash</title>
	<script src="js/angular.min.js"></script>
	<script src="js/angular-route.js"></script>
	<script src="js/hash.js"></script>
</head>
<body ng-app="myapp" ng-controller="hash">
	<ul>
		<li><a href="#a">aaa</a></li>
		<li><a href="#b">bbb</a></li>
		<li><a href="#c">ccc</a></li>
	</ul>
	<div ng-view></div>
</body>
</html>

3.這是頁面1的js
// var hash = location.hash;
var app = angular.module('myapp',['ngRoute'])
	.config(['$routeProvider',function($routeProvider) {
		$routeProvider
		.when('/a',{templateUrl:'html/aaa.html'})
		.when('/b',{templateUrl:'html/bbb.html'})
		.when('/c',{templateUrl:'html/ccc.html'})
		.otherwise({redirectTo:location.hash});
	}])
app.controller('hash',['$scope',function($scope){

}])