菜单服务

菜单服务的数据格式是一个 Menu 数组,其中 text 属性表示菜单文本为必填项,而且本身并不受外部组件的影响(例如sidebar-nav组件),这是因为菜单是贯穿整个项目必不可少的组成部分,而将其独立成一个服务可以更有效被使用,例如:动态生成导航、标题等。

建议: 在 Angular 启动服务(startup.service.ts)从远程获取到菜单数据后,调用 add() 方法。

API

方法参数描述
additems: Menu[]设置菜单数据
clear-清空菜单数据
resumecallback: Funection重置菜单,可能I18N、用户权限变动时需要调用刷新
openedByUrlurl, recursive = false根据URL设置菜单 _open 属性(_open用于是否展开菜单的条件值)
getPathByUrlurl, recursive = false根据url获取菜单列表

recursive

表示自动向上递归查找,例如菜单数据源包含 /ware,则 /ware/1 也视为 /ware 项。

成员说明类型默认值
text文本(支持HTML),必填项string-
i18ni18n主键(支持HTML)string-
group是否显示分组名,指示例中的【主导航】字样booleantrue
link路由,linkexternalLink 二选其一string-
externalLink外部链接,linkexternalLink 二选其一string-
target链接 target_blank,_self,_parent,_top-
icon图标,指示例中的【仪表盘】前图标,只对一级菜单有效string | MenuIcon-
badge徽标数,展示的数字,指示例中的【小部件】后的红色块。(注:group:true 时无效)number-
badgeDot徽标数,显示小红点boolean-
badgeStatus徽标 Badge 颜色success,processing,default,error,warningerror
disabled是否禁用菜单booleanfalse
hide是否隐藏菜单booleanfalse
hideInBreadcrumb隐藏面包屑,指 page-header 组件的自动生成面包屑时有效boolean-
aclACL配置,若导入 @delon/acl 时自动有效,等同于 ACLService.can(roleOrAbility: ACLCanType) 参数值any-
shortcut是否快捷菜单项boolean-
shortcutRoot快捷菜单根节点boolean-
reuse是否允许复用,需配合 reuse-tab 组件boolean-
key菜单项唯一标识符,可用于 getItemsetItem 来更新某个菜单string-
children子菜单Menu[]-
成员说明类型默认值
[type]类型;img, svg 类型需要 14px 宽与高尺寸class,icon,iconfont,img,svgicon
[value]值,包含:类名、图标 nzType、图像string-
[theme]图标主题风格outline,twotone,filloutline
[spin]是否有旋转动画booleanfalse
[twoToneColor]仅适用双色图标,设置双色图标的主要颜色,仅对当前 icon 生效string-
[iconfont]指定来自 IconFont 的图标类型string-
[rotate]图标旋转角度number-

使用 iconfont 类型必须先加载 NzIconService.fetchFromIconfont,建议在根模块中执行。