Angular 有没有办法将回调函数附加到角路由模块中的路由?

Angular 有没有办法将回调函数附加到角路由模块中的路由?,angular,angular-router,Angular,Angular Router,我正在Angular上构建一个大型应用程序,它使用带有子路由的功能模块。每个子节都通过特定于节的布局呈现,该布局为MVP设置子页的状态。例如: /app/projects/yJEBuuOmmRv7WuVomGkb将项目yJEBuuOmmRv7WuVomGkb加载到任何子路由上的状态容器中 我尝试过观看路由器事件,但遇到了一些挑战性的情况,应用程序在不同的环境中处理不同的路由器(孩子和家长) 我想在路由定义中这样做,并且想知道是否有任何方法可以将回调函数附加到路由,从而捕获路由参数并将其应用到状态

我正在Angular上构建一个大型应用程序,它使用带有子路由的功能模块。每个子节都通过特定于节的布局呈现,该布局为MVP设置子页的状态。例如:

/app/projects/yJEBuuOmmRv7WuVomGkb
将项目
yJEBuuOmmRv7WuVomGkb
加载到任何子路由上的状态容器中

我尝试过观看路由器事件,但遇到了一些挑战性的情况,应用程序在不同的环境中处理不同的路由器(孩子和家长)

我想在路由定义中这样做,并且想知道是否有任何方法可以将回调函数附加到路由,从而捕获路由参数并将其应用到状态容器

例如,类似以下伪代码的内容:

const routes:routes=[
{
路径:“”,
组件:PageLayoutComponent,
儿童:[
{
路径:“”,
组件:页面组件
},
{
路径:“管理/设置”,
组件:页面设置组件
},
{
路径:“管理/发布”,
组件:PagePublishingComponent
},
{
路径:':pageId',
组件:PageDetailLayoutComponent,
//伪代码!!!
onRoute:(参数=>{
StateContainer.set('page',params.pageId);
}),
儿童:[
{
路径:“”,
组件:页面组件
}
]
}
]
}
];
@NGD模块({
导入:[RouterModule.forChild(路由)],
导出:[路由模块]
})

export class PagesRoutingModule{}
您可以使用一些选项向路由添加数据

  • 路由中的数据属性:
  • 例如:

    {
       path: 'heroes',
       component: HeroListComponent,
       data: { title: 'Heroes List' 
     }
    
    {
        path: 'heroes',
        component: HeroListComponent,
        resolve: { hero: HeroResolver }
    }
    
    来自angular docs:

    第三个路由中的数据属性是存储任意数据的位置 与此特定路由关联的数据。数据属性为 可在每个激活路线内访问。使用它来存储项目,例如 页面标题、面包屑文本和其他只读静态数据。你会 在本指南后面的部分中,使用resolve guard检索动态数据

  • 分解器
  • 例如:

    {
       path: 'heroes',
       component: HeroListComponent,
       data: { title: 'Heroes List' 
     }
    
    {
        path: 'heroes',
        component: HeroListComponent,
        resolve: { hero: HeroResolver }
    }
    
    来自angular docs:

    总之,您希望延迟渲染路由组件,直到所有 已获取必要的数据

    有关更多信息: 所以这意味着,若您调用一个api端点,为您的组件提供数据,那个么您应该使用解析器

    也许您可以在组件的ngOnInit方法中调用
    StateContainer.set