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.新海贝之城脚本 选牌创建新账号...
4分钟指引!杭麻圈辅助工具(外... 4分钟指引!杭麻圈辅助工具(外挂)其实是真的有辅助方法(哔哩哔哩)1、全新机制【杭麻圈辅助工具ai辅...
第5分钟演示!浙江茶园辅助(外... 第5分钟演示!浙江茶园辅助(外挂)都是是真的有辅助app(哔哩哔哩)1、游戏颠覆性的策略玩法,独创攻...
三分钟举措!上饶中至能操控吗(... 三分钟举措!上饶中至能操控吗(外挂)好像一直都是有辅助软件(哔哩哔哩)1、让任何用户在无需上饶中至能...
两分钟法子!新天道能不能开挂(... 两分钟法子!新天道能不能开挂(外挂)总是是有辅助教程(哔哩哔哩)1、让任何用户在无需新天道能不能开挂...
三分钟要领!玖玖互娱辅助工具(... 三分钟要领!玖玖互娱辅助工具(外挂)真是存在有辅助脚本(哔哩哔哩)三分钟要领!玖玖互娱辅助工具(外挂...
8分钟手段!wepoker私人... 8分钟手段!wepoker私人局辅助器(外挂)确实有辅助技巧(哔哩哔哩)运wepoker私人局辅助器...
2分钟步骤!科乐游戏辅助脚本视... 2分钟步骤!科乐游戏辅助脚本视频(外挂)原来是真的有辅助插件(哔哩哔哩)1、任何科乐游戏辅助脚本视频...