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、黑科技辅助挂挂(德州软件)云扑克德州从来是真的有挂!太无语了总是真的是有挂(2025已更新)(哔...
黑科技辅助挂挂(来玩app德州... 黑科技辅助挂挂(来玩app德州)德扑真是是真的有挂!太离谱了确实存在有挂(2021已更新)(哔哩哔哩...
黑科技辅助挂(Wepoke靠谱... 黑科技辅助挂(Wepoke靠谱)aapoker固有有挂!太坑了一向是有挂(2020已更新)(哔哩哔哩...
黑科技攻略(aapoker)W... 黑科技攻略(aapoker)WpK素来真的是有挂!太坑了其实是有挂(2023已更新)(哔哩哔哩);小...
黑科技线上(德州ai智能系统)... WePoke高级策略深度解析‌;黑科技线上(德州ai智能系统)aAPOKER一直真的有挂!太坑了都是...
黑科技讲解(aapoker有挂... WePoker透视辅助工具核心要点解析‌,黑科技讲解(aapoker有挂)AaPOKER一向存在有挂...
黑科技插件(Wepokeplu... 黑科技插件(Wepokeplus)wpK果然是有挂!太夸张了竟然真的是有挂(2026已更新)(哔哩哔...
黑科技讲解(hm3德州)fis... WePoker透视辅助版本解析‌,黑科技讲解(hm3德州)fishpoker一直是有挂!太离谱了先前...
黑科技辅助(众合推扑克)weP... 黑科技辅助(众合推扑克)wePoke往昔有挂!太离谱了一贯是有挂(2023已更新)(哔哩哔哩);是一...
黑科技插件(德州ai)poke... 黑科技插件(德州ai)pokerx一贯真的是有挂!太离谱了从前真的有挂(2022已更新)(哔哩哔哩)...