第一个要求可以通过使用$routeParams来解决,第二个要求可以通过ngClass来解决。
这是一个快速的示例 plunker,可以帮助您入门:
Javascript
var app = angular.module('plunker', []);
app.config(function ($routeProvider) {
$routeProvider
.when('/', { template: '<p>Home page<p>'})
.when('/:title', { template: '<p>Page for {{ name }}</p>', controller: 'MainCtrl'})
.otherwise({
redirectTo: '/'
});
});
app.controller('MainCtrl', function ($scope, $routeParams) {
$scope.$on('$routeChangeSuccess', function (event, current, prev) {
$scope.name = $routeParams.title || 'World';
});
});
HTML
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.0.x" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js" data-semver="1.0.8"></script>
<script src="app.js"></script>
</head>
<body>
<div ng-controller="MainCtrl">
<h2> Hello {{ name }}!</h2>
<ul class="nav-bar">
<li ng-class="name"><a href="#/Bob">Bob</a></li>
<li ng-class="name"><a href="#/Harry">Harry</a></li>
<li ng-class="name"><a href="#/">Home</a></li>
</ul>
</div>
<div ng-view></div>
</body>
</html>
CSS
.nav-bar {
display: block;
width: 100%;
}
.nav-bar li {
display: inline-block;
text-decoration: none;
width: 50px;
}
.Bob {
background-color: yellow;
}
.Harry {
background-color: orange;
}