我有问题,我有ProductsService
从服务器调用数据并存储在Array
中,我有ProductsComponent
组件是父组件,而我有ProductsListComponent
ProductListItemsComponent
是子组件。流程是,在ProductsService
中,我有方法:
getCategoryFromServer() {
this.dataStorageServiceServiceta.getCategory().subscribe((category: CategoryModel[]) => {
this.categoryModule = category;
this.cateogoryChange.next(this.categoryModule.slice())
})
}
我有categoryModule
数组,用于存储数据。
在ProductsComponent
方法的ngOnInit
中,我叫getCategoryFromServer
方法:
ngOnInit() {
this.productsService.getCategoryFromServer();
}
ProductsComponent
的模板是:
<div class="row">
<div class="col-md-3 col-sm-12">
<app-products-list></app-products-list>
</div>
<div class="col-md-9 col-sm-12">
<div class="row" >
<router-outlet></router-outlet>
</div>
</div>
</div>
我的屏幕显示为app-products-list
组件,在这里我从serevice
调用数据,您可以在图像上看到它的外观。 enter image description here。当我单击此列表中的某些项目时,使用[routerLink]="[products.name]"
会显示我的组件ProductListItemsComponent
,看起来像enter image description here。
问题是当我刷新页面并首先执行ProductListItemsComponent
,然后执行ProductsComponent
之后,我的数组为空。你知道我该如何解决这个问题?
我的路由模块是:
const productsRoutes: Routes = [
{
path: 'productsList', component: ProductsComponent, children: [
{ path: ':category', component: ProductListItemsComponent },
]
},
]
@NgModule({
imports: [
RouterModule.forChild(productsRoutes)
],
exports: [
RouterModule
]
})
export class ProductsRoutingModule {
}
答案 0 :(得分:1)
您可以尝试一次吗?...
const productsRoutes: Routes = [
{ path: '', redirectTo: 'productsList', pathMatch: 'full' },
{
path: 'productsList', component: ProductsComponent,
children: [
{ path: ':category', component: ProductListItemsComponent },
]
}
]
如果它不起作用,请给我stackbliz,我会为您解决。