angular – 如何刷新路径的已解析数据

前端之家收集整理的这篇文章主要介绍了angular – 如何刷新路径的已解析数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请考虑以下路由配置:
  1. const routes: Routes = [
  2. {
  3. path: '',component: AppComponent,resolve: {
  4. app: AppResolver
  5. },children: [
  6. {
  7. path: 'user/:uid',resolve: {
  8. user: UserResolver
  9. },children: [
  10. {
  11. path: '',component: ViewUserComponent
  12. },{
  13. path: 'edit',component: EditUserComponent
  14. }
  15. ]
  16. }
  17. ]
  18. }
  19. ];

UserResolver为route / user /:uid的任何子节点检索用户数据.
使用此数据,可以通过导航到/ user /:uid查看用户配置文件,然后通过导航到/ user /:uid / edit进行编辑.
成功编辑后,可能会重定向用户的更新配置文件(/ user /:uid).

但是,视图和编辑页面都是已解析路径的子项,当从一个导航到另一个时,不会触发解析器.

因此,当从编辑组件导航回视图组件时,显示的数据仍然是旧的,未更新的数据.

是否有办法使已解析的用户数据无效以强制解析器再次从服务器获取它?或者还有其他方法来实现这种结果吗?

应用数据不变,我们不应该重新加载它.

我已经测试了解决方案’runGuardsAndResolvers’,它适用于我的用例,在每个子页面更改时调用解析器.

只是添加此选项,您希望以这种方式表现您的路线部分.

  1. export const ROUTES: any = [
  2. {
  3. path: 'project/:name',runGuardsAndResolvers: "always",component: ProjectComponent,resolve: { project: ProjectResolver },children: [
  4. ...

猜你在找的Angularjs相关文章