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并重新获取数据。选择哪种方法取决于你的具体需求和应用程序的架构。

相关内容

热门资讯

我来向大家传授!爱玩联盟辅助,... 我来向大家传授!爱玩联盟辅助,天天爱柳州麻将辅助器,详细方法(揭秘有挂)1、打开软件启动之后找到中间...
重大推荐!老友广东潮汕麻雀辅助... 重大推荐!老友广东潮汕麻雀辅助,微信小程序辅助器免费,详细app(有挂存在)1、每一步都需要思考,不...
玩家必看秘籍!微乐陕西小程序破... 玩家必看秘籍!微乐陕西小程序破解器下载,微信小程序游戏辅助,详细工具(有挂猫腻)1、每一步都需要思考...
科普常识!四川途游辅助软件,微... 科普常识!四川途游辅助软件,微信小程序中至赣牌圈辅助,详细技巧(发现有挂)1、全新机制【微信小程序中...
最新技巧!广西友乐解码器,洞庭... 最新技巧!广西友乐解码器,洞庭茶苑app辅助,详细软件(有挂工具)1、金币登录送、破产送、升级送、活...
实操分享!丰城双剑新版最强高分... 实操分享!丰城双剑新版最强高分攻略,小松宿松辅助,详细方法(存在有挂)1、游戏颠覆性的策略玩法,独创...
总算清楚!乐胡陇南摆叫辅助器,... 总算清楚!乐胡陇南摆叫辅助器,h5能反杀吗,详细教程(有挂教学)1.乐胡陇南摆叫辅助器 选牌创建新账...
如何分辨真伪!八闽掌上十八卦脚... 如何分辨真伪!八闽掌上十八卦脚本,创思维激K辅助器开挂,详细神器(有挂分享)1、打开软件启动之后找到...
重磅来袭!金虎爷有挂吗,斗棋b... 重磅来袭!金虎爷有挂吗,斗棋bug,详细器(有挂细节)1、金虎爷有挂吗免费脚本咨询教程、金虎爷有挂吗...
传递经验!卡农血拼辅助,蜀山四... 传递经验!卡农血拼辅助,蜀山四川智能辅助软件,详细工具(有挂透明挂)暗藏猫腻,小编详细说明蜀山四川智...