我正在开发一个应用程序,需要根据某些外部数据源配置路由。该应用程序的生命周期如下:
- ng2初始化App
- App包含Header、router-outlet和Footer
- 默认路由配置为homeComponent
- homeComponent具有categoriesListComponent
- categoriesListComponent调用categoriesService的get方法
- categoriesService从api返回分类列表
- categoriesComponent呈现列表,并通过routesConfigurator将每个类别的新路由注入回App
实际上还有一个带有routesService的抽象层,但这不是本例所需的
这一部分工作正常,因为我们从主页开始,API调用已经创建了每个类别的routerConfigs
。因此,当用户单击类别时,路由已经配置正确的categoryComponent
+metadata
,并显示正确的信息。
然而,如果直接访问特定类别页面,ng2尚未具有该路由的routerConfig
,因为API调用尚未返回任何东西,更不用说触发了。Ng2只渲染具有Header、Footer和空router-outlet的基本App。
我唯一能想到的解决办法非常“hacky”。在应用程序服务器上保留一个缓存的json文件,并在最初的html中加载它,然后将其注入到ng2 bootstrap/init中的服务中。这样,在ng2开始呈现页面之前,路由就已经配置好了。
我请求任何其他可能的建议,也许有更多ng2经验的人可以发表意见。也许这已经得到了解决,我只是没有完善我的google-fu。
提前感谢。
/category/:categoryName
)。您可以在 http://victorsavkin.com/post/145672529346/angular-router 上了解更多关于路由器的信息。 - cghislai