activatedRoute 返回空对象

activatedRoute returning empty object

我有一个路由模块,它为许多其他模块设置了路由,我已经设法使用 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;
      });
   }
}

如有任何帮助,我们将不胜感激。

来自Angular documentation

data: Observable<Data> - An observable of the static and resolved data of this route.

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

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

this.routeData = this.activatedRoute.parent.snapshot.data;