Angular - 在路由到延迟加载模块时将数据传递给主机组件

标签 angular angular-routing

我有一个具有以下路由的模块:

{
    path: '',
    component: PagesComponent,
    children: [
      {
        data: { test: 'snoop' },
        path: 'dashboard',
        loadChildren: './modules/dashboard/dashboard.module#DashboardModule',
      },
      {
        data: { test: 'dogg' },
        path: 'admin', 
        loadChildren: './modules/admin/admin.module#AdminModule' 
      }
    ]
  }

我想做的是将一些数据传递给 PagesComponent 组件,具体取决于您加载的延迟加载模块。

所以,在我的 PagesComponent 中,我想要这样的东西:

constructor(private route: ActivatedRoute) {
    this.route.data.subscribe(data => {
      console.log(data);
    });
  }

然后 data 参数将包含根中定义的数据。

我知道我可以轻松地从延迟加载模块组件本身的路由中检索数据,但是是否可以在主机组件(即 PagesComponent)中获取此数据?

背景:我想这样做是为了根据您当前所在的页面在菜单中显示不同的数据。

最佳答案

延迟加载和simple的区别routes 的数据是你必须看得更深。

constructor(route: ActivatedRoute) {
  route.url.subscribe(() => {
    console.log(route.snapshot.firstChild.firstChild.data);
   });
}

关于Angular - 在路由到延迟加载模块时将数据传递给主机组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54886642/

相关文章:

javascript - Angular,如何使用基于 bool 值的指令

Angular 辅助路由 - 无法在同一个导航调用中导航和清除辅助路由?

Angularjs在不同文件中路由

javascript - 有没有办法在 Angular 渲染到屏幕之前打印组件原始代码?

javascript - 如何、在何处以及何时刷新 Angular 2/5 应用程序中的 token ?

css - 如何修复 PrimeNG 下拉样式问题?

angular - 如何检查 Angular2 的 http.response 中的空响应主体?

Angular 8 - URL 使用 routerLink 加载,但在 LOCALHOST 的浏览器中直接访问时不显示

angular - 在 Ionic 5 路由器中登录/注销时登录/主页不会被破坏

angularjs - 根据路由组动态加载 Controller