我有以下路线:
const DATA_CHILDREN: any[] = [{
name: 'Child page',
url: 'child-url'
}, {
name: 'Child page two',
url: 'child-url-two'
}];
const routes: Routes = [{
path: 'data/some-url',
loadChildren: ...
component: SomeComponent,
data: {
pages: MENU_PAGES,
children: DATA_CHILDREN,
}
}];
我想DATA_CHILDREN
从后端获取。我尝试将DATA_CHILDREN
其转换为Promise
,例如
let getDataChildren = (): Promise<Page[]> => {
return inject(FormService).findRoutes();
};
这让我得到:
Uncaught RuntimeError: NG0203: inject() must be called from an injection context
我该如何处理这个问题?
您可以尝试使用 a
resolver
首先从后端获取数据。在处理数据之前,请参阅使用解析器的参考资料。你可以用这个代码作为指导,最终这在理论上应该可行
然后,您可以在路线激活之前修改路线以使用解析器或子数据
然后,您可以更新更新组件以使用已解析的数据
以下是您的路线路径结构应如何实现。
这可以通过解析器来实现,解析器是在激活路由之前获取数据的服务。它用于确保在加载组件之前某些数据可用。
创建解析器
在路由模块中配置解析器以访问数据组件
访问组件中已解析的数据