我第一次使用AngularJS。我已在ng-view
页面中成功实施了一个index.html
,其中包含header.html
模板。所以它看起来像下面
但现在我正在创建一个仪表板(dashboard.html
)。所以,除了header.html
之外,我还有一个左侧菜单,所以看起来像这样:
我的index.html与此类似:
<div ng-include="'templates/header.html'"></div>
<div class="main" id="main-no-space" >
<div id="main-page">
<div id="wrapper" class="container">
<div class='container'>
<div ng-view></div>
</div>
</div>
</div>
<div ng-include="'templates/footer.html'">
我的dashboard.html与此类似:
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav side-nav">
<li class="active">
<a ng-href="#/link1">Link 1</a>
</li>
<li>
<a ng-href="#/link2">Link 2</a>
</li>
<li>
<a ng-href="#/link3">Link 3</a>
</li>
</ul>
</div>
答案 0 :(得分:1)
试试这个:
angular.module('app', ['ngRoute'])
.config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/dashboard', {
templateUrl: 'dashboard.html',
controller: DashboardCtrl
})
.otherwise({
redirectTo: '/dashboard'
});
}]);
function DashboardCtrl() {
}
&#13;
* {
box-sizing: border-box;
}
#main:after {
content: "";
display: block;
clear: both;
}
#header {
padding: 20px;
border: 1px solid #000;
}
#main {
padding: 20px;
border: 1px solid #000;
}
#sidebar {
padding: 20px;
border: 1px solid #000;
float: left;
width: 20%;
}
#content {
padding: 20px;
border: 1px solid #000;
float: right;
width: 78%;
}
#footer {
padding: 20px;
border: 1px solid #000;
}
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.14/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.14/angular-route.js"></script>
<div ng-app="app">
<div ng-include="'header.html'" id="header"></div>
<div class="main" id="main-no-space">
<div id="main-page">
<div id="wrapper" class="container">
<div class="container">
<div ng-view id="main">loading...</div>
</div>
</div>
</div>
<div ng-include="'footer.html'" id="footer"></div>
</div>
<script type="text/ng-template" id="dashboard.html">
<div ng-include="'sidebar.html'" id="sidebar"></div>
<div id="content">dashboard</div>
</script>
<script type="text/ng-template" id="header.html">
header
</script>
<script type="text/ng-template" id="sidebar.html">
sidebar
</script>
<script type="text/ng-template" id="footer.html">
footer
</script>
</div>
&#13;
JSFiddle http://jsfiddle.net/mcVfK/928/
答案 1 :(得分:0)
一个选项是查看ui-router,因为它可以让您轻松进行此类自定义。
第二个选项是创建一个与仪表板分开的leftNav控件,然后将其包含在index.html中。根据活动视图显示和隐藏它。
请参阅我之前的一个答案Slicing an SPA into several components and use AngularJS