CBoard框架使用总结二--扩展新的功能模块
来源:互联网 发布:手机有算量软件吗 编辑:程序博客网 时间:2024/06/08 13:34
文章内容
1.添加新的菜单项
2.完成后台处理逻辑
3.整体流程
1.添加新的菜单项
1.1.提供菜单数据
基础的CBoard框架菜单项需要在代码里面(Service层)配置,由于是以list形式存储,有必要的时候也能够通过数据库实现;
/*org.cboard.services.MenuService */public class MenuService { private static List<DashboardMenu> menuList = new ArrayList<>(); static { menuList.add(new DashboardMenu(1, -1, "SIDEBAR.CONFIG", "config")); menuList.add(new DashboardMenu(11, -1, "SIDEBAR.EXTEND", "extend")); menuList.add(new DashboardMenu(12, 11, "SIDEBAR.EXTEND_FUNCTION_1", "extend.function_1")); } public List<DashboardMenu> getMenuList() { return menuList; }}
配置参数:
menuList.add(new DashboardMenu(long menuId, long parentId, String menuName, String menuCode));
1.2.返回菜单数据
通过公用的Controller返回数据,有前端代码调用获取数据;
@RequestMapping(value = "/getMenuList")public List<DashboardMenu> getMenuList() { return menuService.getMenuList();}
1.3.前端处理数据,并展示在界面上
在AngularJS的Controller层,我们发现cBoardCtrl控制器,用于获取菜单列表;
var getMenuList = function () { $http.get("commons/getMenuList.do").success(function (response) { $scope.menuList = response; });};
特别的,CBoard并不是直接将菜单项显示在界面上,而是在模板中配置所有菜单项,通过isShowMenu(menuCode)判断是否显示此菜单项;
/*isShowMenu方法*/$scope.isShowMenu = function (code) { return !_.isUndefined(_.find($scope.menuList, function (menu) { return menu.menuCode == code }));};
<!--src/main/webapp/starter/main-sidebar.html--><!-- Extends --><li class="treeview" ui-sref-active="active" ng-if="isShowMenu('extend')"> <a> <i class="fa fa-cog"></i> <span>{{'SIDEBAR.EXTEND'|translate}}</span> <span class="pull-right-container"> <i class="fa fa-angle-left pull-right"></i> </span> </a> <ul class="treeview-menu"> <li ui-sref-active="active" ng-if="isShowMenu('extend.function_1')"> <a ui-sref="extend.function_1"><i class="fa fa-fw fa-user"></i>{{'SIDEBAR.EXTEND_FUNCTION_1'|translate}}</a> </li> </ul></li>
1.4.配置菜单项功能
菜单的功能配置在AngularJS的config中完成,涉及到具体的请求地址,模板路径,Controller(前端),被当作常量存储在config中;
<!--src/main/webapp/org/cboard/ng-config.js-->angular.module('cBoard').config(['$stateProvider', function ($stateProvider) { $stateProvider //...... .state('extend', { url: '/extend', abstract: true, template: '<div ui-view></div>' }) .state('extend.function_1', { url: '/extend', templateUrl: 'org/cboard/view/extend/function_1.html', controller: 'extendFunction' });}]);
当点击具体的菜单项时会请求响应的Controller并加载对应的模板,最后完成界面的渲染;
1.5.配置语言字符串
CBoard的语言配置通过AngularJS的国际化服务来完成(Angular-translate),如图为菜单项的语言字符串:
/*src/main/webapp/i18n/cn/cboard.json*/"SIDEBAR": { "C_DASHBOARD": "看板", "MY_DASHBOARD": "我的看板", "CONFIG": "配置", "DATA_SOURCE": "数据源管理", "CUBE": "数据集管理", "WIDGET": "图表设计", "DASHBOARD": "看板设计", "DASHBOARD_CATEGORY": "看板分类", "ADMIN": "管理", "USER_ADMIN": "用户管理", "RES_ADMIN": "资源管理", "JOB": "定时任务", "SHARE_RESOURCE": "资源分享", "EXTEND": "扩展功能", "EXTEND_FUNCTION_1":"测试功能一"},
阅读全文
2 0
- CBoard框架使用总结二--扩展新的功能模块
- CBoard框架使用总结五--扩展菜单配置功能
- CBoard框架使用总结一
- CBoard框架使用总结三--AdminLTE可扩展性分析
- CBoard框架使用总结五--角色权限控制
- CBoard框架使用总结七--添加首页图表
- Django功能模块的单独使用
- Django功能模块的单独使用
- 新框架的学习总结
- CBoard框架数据集实现--DataProvider
- SSH框架网站的功能模块设计
- yii框架中使用php(xampp)的mongodb扩展和应用总结
- hibernate添加新的功能模块报错 unknown entity
- Struts2验证框架的使用和扩展
- shiro框架的使用及扩展
- shiro框架的使用及扩展
- hive使用新的总结
- (笔记)使用扩展的CI框架实现RESTful框架
- 数组插入算法的分析与理解
- USB gadget设备驱动解析
- windows——消息——WM_CREATE WM_DESTROY
- POJ
- Github收藏之AndroidUtilCode
- CBoard框架使用总结二--扩展新的功能模块
- HDU-1010 tempter of the bone 骨头的诱惑/233
- 第三本书 pxe
- codecomb 2098 stone 线段树 解题报告
- windows——消息——WM_PAINT
- 多媒体(音频)
- python3 [爬虫入门实战]scrapy爬取盘多多五百万数据并存mongoDB
- Spring MVC参数的传递与接收
- 前端在线编程题6