2

我有一个路由模块,它为许多其他模块设置了路由,我已经设法毫无问题地使用它们activatedRoute。但是我现在创建了一个单一组件,当我尝试使用它时它返回一个空对象activatedRoute

路由模块看起来像这样:

const routes = [
   {
      path: 'path',
      component: myComponent,
      resolve: { resolver: myCustomResolver },
      children: [
         {
            path: '',
            children: [
               {
                  path: 'users',
                  loadChildren: 'app/users.module#UsersModule'
               },
               {
                  path: 'articles',
                  loadChildren: 'app/articles.module#ArticlesModule'
               }
            ]
         },
         // this is the new component
         { path: 'stories', component: StoriesComponent }
      ]
   }
]

activatedRoute在模块和新组件中使用相同的方法:

export class StoriesComponent implements OnInit {
   private routeData;

   constructor(private activatedRoute: ActivatedRoute) {}

   ngOnInit() {
      // this is returning an empty object '{}'
      this.activatedRoute.data.subscribe(data => {
         this.routeData = data;
      });
   }
}

在这里的任何帮助将不胜感激。

4

2 回答 2

2

您想访问子级中的父级解析数据。试试这个。

this.routeData = this.activatedRoute.parent.snapshot.data;
于 2021-08-03T07:48:17.877 回答
1

来自Angular 文档

data: Observable<Data> - 此路由的静态数据和已解析数据的 observable。

在提供的路由配置中,没有静态数据或动态数据解析器。这就是为什么data是一个空对象。

于 2021-08-03T07:12:41.980 回答