我也想用angular-ui-router這將是最好的。
您可以爲您的應用程序創建一個<div ui-view></div>
,然後創建一個抽象狀態,該狀態將加載您的基本模板以及其中的標題。像這樣的東西可能是你的基本模板:
<ul><li>...</li>...</ul>
<div ui-view="content"></div>
然後在基地的每一個孩子的狀態可以將內容添加到命名視圖「內容」。
與ui-sref-active="active"
很容易突出顯示當前活動的鏈接。
請看看下面的演示或此fiddle。
angular.module('demoApp', ['ui.router'])
\t .config(routeConfig);
function routeConfig($urlRouterProvider, $stateProvider) {
\t $urlRouterProvider.otherwise('/');
\t $stateProvider.state('base', {
\t url: '/',
abstract: true,
templateUrl: 'partials/base.html'
})
.state('base.home', {
\t url: '',
views: {
\t 'content': {
\t templateUrl: 'pages/home.html',
controller: function() {
\t console.log('home controller');
}
}
}
})
.state('base.machines', {
\t url: '/machines',
views: {
\t 'content': {
\t templateUrl: 'pages/machines.html',
controller: function() {
\t console.log('machines controller');
}
}
}
})
.state('base.persons', {
\t url: '/persons',
views: {
\t 'content': {
\t templateUrl: 'pages/persons.html',
controller: function() {
\t console.log('persons controller');
}
}
}
})
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.3/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.18/angular-ui-router.js"></script>
<div ng-app="demoApp">
<div ui-view></div>
<script type="text/ng-template" id="partials/base.html">
\t <ul class="nav nav-pills nav-justified">
<li ui-sref-active="active"><a ui-sref="base.home">Home</a></li>
<li ui-sref-active="active"><a ui-sref="base.machines">Maschinen/Tätigkeiten</a></li>
<li ui-sref-active="active"><a ui-sref="base.persons">Personen</a></li>
</ul>
<div ui-view="content"></div>
<!-- here you could add a footer view -->
</script>
<script type="text/ng-template" id="pages/home.html">
\t home
</script>
<script type="text/ng-template" id="pages/machines.html">
\t machines
</script>
<script type="text/ng-template" id="pages/persons.html">
\t persons
</script>
</div>