ABP官方文档(三十五)【导航栏】
来源:互联网 发布:ajax跨域请求json数据 编辑:程序博客网 时间:2024/04/29 08:59
6.4 ABP表现层 - 导航栏
每一个WEB应用程序都有导航菜单,Abp也为用户提供了通用的创建和显示菜单方式。
6.4.1 创建菜单
一个应用程序可能包含不同的模块,而每个模块都可能有它自己的菜单项。在Abp中,需要创建一个派生自NavigationProvider的类来定义一个菜单项。
假设我们有一个这样的主菜单:
Tasks
Reports
Administration
1 User Management
2 Role Management
由上可知,Administration菜单项有两个子菜单项。对应的生成方法如下:
public class SimpleTaskSystemNavigationProvider : NavigationProvider{ public override void SetNavigation(INavigationProviderContext context) { context.Manager.MainMenu .AddItem( new MenuItemDefinition( "Tasks", new LocalizableString("Tasks", "SimpleTaskSystem"), url: "/Tasks", icon: "fa fa-tasks" ) ).AddItem( new MenuItemDefinition( "Reports", new LocalizableString("Reports", "SimpleTaskSystem"), url: "/Reports", icon: "fa fa-bar-chart" ) ).AddItem( new MenuItemDefinition( "Administration", new LocalizableString("Administration", "SimpleTaskSystem"), icon: "fa fa-cogs" ).AddItem( new MenuItemDefinition( "UserManagement", new LocalizableString("UserManagement", "SimpleTaskSystem"), url: "/Administration/Users", icon: "fa fa-users", requiredPermissionName: "SimpleTaskSystem.Permissions.UserManagement" ) ).AddItem( new MenuItemDefinition( "RoleManagement", new LocalizableString("RoleManagement", "SimpleTaskSystem"), url: "/Administration/Roles", icon: "fa fa-star", requiredPermissionName: "SimpleTaskSystem.Permissions.RoleManagement" ) ) ); }}
MenuItemDefinition可以有一个唯一的名字,一个用于本地化显示的名字,一个url和一个icon,此外:
菜单项可能需要与特定用户权限相结合显示菜单(请查看权限验证文档),requiredPermissionName 属性,可以在这种情况下使用
菜单项可以依赖于功能项,featureDependency 属性,可以在这种情况下使用
菜单项可以定义一个 customData 和 order
InavigationProviderContext方法能够获取现有的菜单项、添加菜单或菜单项。因此,不同的模块可以添加各自的菜单。
在应用程序中可能有一个或者多个菜单,context.Manager.MainMenu 是默认主菜单的引用。我们可以使用 context.Manager.Menus 属性创建和添加更多的菜单。
注册导航提供器
创建完成导航后,我们应该在ABP的 PreInitialize 配置它:
Configuration.Navigation.Providers.Add<SimpleTaskSystemNavigationProvider>();
6.4.2 显示菜单
IUserNavigationManager 可以注入、获取和显示菜单。因此,我们可以在服务器端创建菜单。
Abp自动生成的 javascript API 使得用户能够在客户端获取菜单,对应的方法和对象在命名空间 abp.nav 中。例如,在客户端使用 abp.nav.menus.MainMenu 可以用来获取主菜单。所以我们可以在客户端创建菜单。
ABP模板使用该系统为用户创建和显示菜单。请试着创建模板并且查看源代码以了解更多信息。
- ABP官方文档(三十五)【导航栏】
- ABP官方文档(十五)【实体】
- ABP官方文档(十七)【仓储】
- ABP官方文档翻译 3.6 工作单元
- ABP官方文档翻译 3.5 规约
- ABP官方文档翻译 3.4 领域服务
- ABP官方文档翻译 3.3 仓储
- ABP官方文档翻译 3.2 值对象
- ABP官方文档翻译 3.1 实体
- ABP官方文档翻译 2.6 定时
- ABP官方文档翻译 2.5 设置管理
- ABP官方文档翻译 1.6 OWIN集成
- ABP官方文档翻译 1.5 多租户
- ABP官方文档翻译 1.4 启动配置
- ABP官方文档翻译 1.3 模块系统
- ABP官方文档翻译 1.1 介绍
- ABP官方文档(一)【入门介绍】
- ABP官方文档(二)【多层次架构体系】
- 程序员
- HTML5调用摄像头+视频特效+录制视频+录音+截图+变声+滤波+音频可视化
- Bomb(数位dp)
- 模仿共享单车
- 曲折的WebDriver环境搭建(selenium WebDriver eclipse 环境搭建)
- ABP官方文档(三十五)【导航栏】
- 从零开始python小案例001闰年计算器002每月天数计算器
- JNDI(javaEE其中规范之一)
- 《我的再生兄弟》—一个带了枷锁的列表
- @RequestBody注解
- ex2_5 保留小数点位数 及 比较浮点数的大小
- 用模板类实现顺序表
- html-transform+onmouseover-08
- 项目管理中的配置管理