需求背景:
使用yo angular
生成的项目默认主页是这样的:
body部分涉及具体的业务内容,后续研究。这里主要研究菜单项、页眉的处理。
页脚处理:
自动生成的项目中,菜单和页脚设置都是在index.html文件中实现的。
# index.html
<div class="footer">
<div class="container">
<p><span class="glyphicon glyphicon-heart"></span> 京东金融·杭州研发中心</p>
</div>
</div>
设置css格式:
/* Custom page footer */
.footer {
padding-top: 20px;
color: rgba(204, 3, 8, 0.91);
border-top: 1px solid #e5e5e5;
text-align: center;
}
.container {
max-width: 730px;
margin-left: auto;
margin-right: auto;
}
上述截图还可见页面格式问题,是因为创建工程时,没有依赖bootstrap还有compass,项目根目录下安装相关依赖即可: bower install compass --save bower install bootstrap --save
菜单处理:
菜单功能主要在index.html文件中的header代码段实现。
<div class="header">
<div class="menu">
<nav class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<!--![](images/jdjr.jpg)-->
</div>
<div class="collapse navbar-collapse" id="">
<ul class="nav navbar-nav">
<li class="active dropdown">
<a class="dropdown-toggle" href="#" data-toggle="dropdown">网关信息</a>
<ul class="dropdown-menu">
<li><a href="">NAT网关</a></li>
<li><a href="">ROUTER网关</a></li>
</ul>
</li>
</ul>
</div>
</nav>
</div>
</div>
这些class设置了默认属性,所以能够呈现出较为友好的样式,所以如果使用自定义类名,那样式需要自己设置。如果需要鼠标移动到菜单上就能够显示子菜单,则需要设置css属性。
.dropdown:hover .dropdown-menu {
display: block;
}
菜单增加跳转:
菜单的跳转主要通过href实现,如下代码就是操作日志菜单跳转到/oplog页面:
<li><a href="#!/oplog">操作日志</a></li>
然后需要在app.js中增加相关控制代码:
.when('/oplog', {
templateUrl: 'views/about.html',
controller: 'AboutCtrl',
controllerAs: 'about'
})
由于这里我重用了项目初始化时就生成的about.html代码,所以,不需要开发相关html文件,实际开发中这个跳转后的网页是需要自己在views目录下创建并开发页面的,同时需要在controllers目录下开发相关控制(此处就为AboutCtrl.js)代码。
菜单active属性处理:
按照前面说明开发出的菜单存在当前选中的菜单项不是active
状态的问题,需要菜单支持动态切换active
状态就需要做相关处理。
绑定active
属性到方法:ng-class="{'active': isActive('url')}"
,此时isActive
的方法实现需要在controller
中实现:
$scope.isActive = function (current) {
console.log("current:" + current);
console.log("location url:" + $location.url());
var loc = '#!' + $location.url();
console.log(current === loc);
return current === loc;
}
实现原则就是当前的url和传入的url字符串是否一致。如果一致,则当前菜单项为active
状态。
菜单插入图片处理:
<div class="navbar-header">
![](images/jdjr.jpg)
</div>
设置图片格式:
.img-thumbnail {
height: 75px;
}