菜单逻辑贯穿整个认证后的主界面,定位入口时直接在 app/authenticated 模块下查找。
组件入口
打开 template.hbs 文件,顶部的 page-header 组件承载了导航内容。这个组件负责渲染顶部菜单的视觉结构。
核心逻辑
所有菜单的动态渲染逻辑都集中在 updateNavTree 函数中。该函数调用 getTree() 获取基础数据,并通过全局搜索 bulkAdd 方法定位到定义菜单数据的文件。
作用域机制
pageScope 变量决定了当前页面的作用域,直接影响一级与二级菜单的显示层级:
- global:全局菜单
- cluster:集群级菜单
- project:项目级菜单
数据结构示例
子菜单项通常包含以下字段:
{
scope: 'global',
id: 'global-catalogs',
localizedLabel: 'nav.admin.catalogs',
route: 'global-admin.catalog',
resource: ['catalog'],
resourceScope: 'global'
}
主菜单项示例:
{
scope: 'project',
id: 'infra',
localizedLabel: 'nav.infra.tab',
ctx: [getProjectId],
submenu: []
}
源码注释参考
以下是 Tree Item 选项的部分注释摘录,有助于理解配置项含义:


