Angular的router.navigate不会在同一组件上调用resolver进行路由。
创始人
2024-10-24 09:31:00
0

在Angular中,使用router.navigate进行路由导航时,确实不会再次调用相同组件上的Resolver。这是因为Angular认为在同一组件上进行导航时,组件实例已经存在且不需要再次调用Resolver来获取数据。

如果你想在同一组件上调用Resolver并重新获取数据,可以使用以下解决方法:

  1. 创建一个新的组件,并在该组件上调用Resolver来获取数据。然后使用router.navigate导航到这个新组件。

在原始组件中:

import { Router } from '@angular/router';

constructor(private router: Router) {}

navigateToNewComponent() {
  this.router.navigate(['/new-component']);
}

在路由模块中定义新组件的路由:

import { NewComponent } from './new-component/new-component.component';

const routes: Routes = [
  { path: 'new-component', component: NewComponent, resolve: { data: ResolverService } }
];
  1. 使用router.navigateByUrl方法指定一个不同的URL来导航到同一组件,并在URL上添加查询参数或片段来触发Resolver重新获取数据。

在原始组件中:

import { Router } from '@angular/router';

constructor(private router: Router) {}

refreshComponent() {
  const currentUrl = this.router.url;
  this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {
    this.router.navigate([currentUrl]);
  });
}

在路由模块中定义组件的路由:

import { MyComponent } from './my-component/my-component.component';

const routes: Routes = [
  { path: 'my-component', component: MyComponent, resolve: { data: ResolverService } }
];

这两种方法都可以在同一组件上调用Resolver并重新获取数据。选择哪种方法取决于你的具体需求和应用程序的架构。

相关内容

热门资讯

透视辅助!wepoke辅助技巧... 透视辅助!wepoke辅助技巧,wepoke透明挂辅助软件是真的吗,详细透视玩家教你1、wepoke...
微扑克辅助器ios!wpk a... 微扑克辅助器ios!wpk ai辅助有没有用(透视)好像真的有挂(详细辅助AI教程)1、微扑克辅助器...
透视苹果版!wepok软件透明... 透视苹果版!wepok软件透明挂,wepoke的机制,详细透视我来教教你1、wepok软件透明挂透视...
wepoke的确有挂!微扑克辅... 自定义wepoke的确有挂系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,...
wpk外挂!wpk俱乐部24小... wpk外挂!wpk俱乐部24小时(透视)果然真的是有挂(详细辅助扑克教程);wpk外挂!wpk俱乐部...
透视计算!wepoke计算辅助... 透视计算!wepoke计算辅助,wepoke免费软件透明挂,详细透视切实教程wepoke计算辅助辅助...
德州ai人工智能!wepoke... 德州ai人工智能!wepoke是不是有挂(透视)起初有挂(详细辅助大神讲解);无聊就玩这款德州ai人...
透视总结!wepower辅助器... 透视总结!wepower辅助器,wepoke软件下载,详细透视曝光教程;1、让任何用户在无需wepo...
微扑克ai辅助工具!微扑克有机... 微扑克ai辅助工具!微扑克有机器人吗(透视)果然真的有挂(详细辅助教你攻略)是一款可以让一直输的玩家...
透视教学!wepoke真的有挂... 透视教学!wepoke真的有挂,wepower使用说明书,详细透视揭秘攻略1、点击下载安装,wepo...