花了一个月,差不多把公司的质量管理模块写好了,有过一些坑,所以要总结一下。
第一:由于angular自带的路由不能实现深层嵌套,所以采用的是angular-ui-route来控制路由,实现导航列表。
第二:根据输入的内容从显示相符的候选列表
我是使用angularStrap中的typeahead插件来实现的,如果angularStrap版本高于2.2必须使用bs-option属性来实现候选框,而不能用ng-option
第三:实现多级二级菜单
同样使用了angularStrap中的collapse插件,用了两次ng-repeat生成一二级菜单,难度最大的在于如何控制他们各自的样式,在这里用了很多的逻辑
<div class="panel-group" ng-model="panels.activePanel" role="tablist" aria-multiselectable="true" bs-collapse> <div class="panel panel-default" ng-repeat="item in vmManager.panelDataSource"> <div class="panel-heading" role="tab" ng-click="vmManager.selectMaterialIdItem(item.materialIdItem)"> <a bs-collapse-toggle style="cursor:pointer;color:#000" title="{{item.productId}}"> {{item.productName}} </a> </div> <div class="panel-collapse list-group " role="tabpanel" bs-collapse-target cg-busy="{promise:searchPromise}"> <a class="panel-body list-group-item" ng-repeat="inspectionItem in item.inspectionItemDatas" ng-class="{'active':inspectionItem===vmManager.currentInspectionItem}" ng-click="vmManager.selectInspectionItem(inspectionItem)"> {{inspectionItem.InspectionItem}} <span class="pull-right"> <i class="fa fa-check badge-success" title="结果判定标志" ng-show="inspectionItem.InspectionItemResult==='OK' && inspectionItem.InsptecitonItemIsFinished===true"></i> <i class="fa fa-close badge-fail" title="结果判定标志" ng-show="inspectionItem.InspectionItemResult==='NG' && inspectionItem.InsptecitonItemIsFinished==true"></i> </span> <span class="pull-right" title="数量显示标志" ng-class="{true: 'badge-info',false: 'badge-fail'}[inspectionItem.NeedFinishDatanumber===inspectionItem.HaveFinishDatanumber]"> {{inspectionItem.NeedFinishDatanumber}}/{{inspectionItem.HaveFinishDatanumber}} </span> </a> </div> </div> </div> </div>
第四:使用到了css3的多种颜色渐变和透明属性,画出三角形
第五:实现分页效果
用指令封装的分页器,实现自动分页效果,这样只要一句话就能调用分页,实现代码复用
<div ng-if="vmManager.dataSource.length>0" yl-pagination data- dataset="vmManager.dataSets" data-datasource="vmManager.dataSource">
</div>
有错误欢迎指正,共同学习进步
原文链接:https://www.f2er.com/angularjs/147781.html