如何手动触发路由解析器

2024-02-03

我在访问之前解析用户帐户片段 of my 用户页面 :

应用程序路由.component.ts

{
  path: 'users/:id',
  component: UserComponent,
  resolve: {user: UsersService},
  children: [
    {path: '', pathMatch: 'full', redirectTo: 'account'},
    {path: 'account', component: UserAccountComponent},
    {path: 'sites', component: UserSitesComponent}
  ]
}

用户.service.ts

resolve(route: ActivatedRouteSnapshot, r: RouterStateSnapshot) {
  return this.getUser(route.params['id']);
}

用户帐户.component.ts

ngOnInit() {
  this.route.parent.data.subscribe(data => {
    this.user = data['user'];
    // Initialize the form and its validators
    this.initForm();
  });
}

在用户帐户组件中,我可以保存或重置表单。在这两种情况下,我都想更新组件的用户并重置表单和验证器。理想情况下,它希望再次触发订阅。

知道如何手动触发解析器吗?

(我曾经重新导航到与最后一个片段相同的随机数模路由,但由于我将用户页面分解为父/子路由,因此当最后一个片段更改时,不再调用父级中的解析器)


我同意“Woot”,但是如果您想再次触发解析器,请转到您的路由模块并添加

runGuardsAndResolvers: "always"

现在您可以再次在同一页面上导航,解析器将再次运行。但请注意,只有解析器会再次运行,没有其他生命周期,例如“ngOnInit".

根据您的代码示例

应用程序路由.component.ts

{
  path: 'users/:id',
  component: UserComponent,
  resolve: {user: UsersService},
  children: [
    {path: '', pathMatch: 'full', redirectTo: 'account'},
    {path: 'account', component: UserAccountComponent, runGuardsAndResolvers: "always"},
    {path: 'sites', component: UserSitesComponent}
  ]
}

现在,如果您再次路由到同一页面,则您的订阅用户帐户.component.ts将会再次被触发

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何手动触发路由解析器 的相关文章

随机推荐

  • 如何从方法返回 IEnumerable

    我正在为一个示例项目开发接口 我希望它尽可能通用 所以我创建了一个如下所示的接口 public interface IUserFactory IEnumerable
  • ASP.NET Identity 3.0 上的 IIdentityMessageService 的等效项是什么?

    在 ASP NET Identity 2 X 上 我们可以通过以下方式配置通知基础结构IIdentityMessageService接口可在Microsoft AspNet Identity Core库 未升级到版本 3 0 在 ASP N
  • mat-card-avatar 在初始页面加载时未正确呈现

    我有一个简单的垫卡头像布局 它在我的应用程序的许多页面的标题中显示圆形图标 我发现在许多页面上 但不是所有页面 即使使用相同类型的代码 都没有渲染mat card avatar正确地在初始渲染通道上 我正在使用这段代码 h1 div cla
  • .Net 微框架的 Json 库

    我正在使用 Net Microframework 运行一个轻型网络服务器 我想知道哪些库主要适用于 JSON 序列化 但也可能适用于反序列化 我发现很多 JSON 库的问题是它们使用 MF 中不可用的奇特 Net 功能 并且比我需要的更复杂
  • 使用 LINQ 确定序列不包含元素[重复]

    这个问题在这里已经有答案了 可能的重复 LINQ 最大还是默认 https stackoverflow com questions 341264 linq max or default 我有一些 LINQ 需要过滤DateTime vars
  • 删除行后留下的 FILESTREAM 文件

    我已经在我的 SQL 2008 服务器上成功设置了 FILESTREAM 但是我注意到 即使我删除了包含 FILESTREAM 数据的行 物理数据文件似乎也没有被删除 我所说的物理文件是指 SQLServer 托管目录中以唯一标识符作为文件
  • 将 PIL.Image 转换为 skimage

    我的项目中有 2 个模块 第一个模块以字节格式处理图像 第二个模块需要 skimage 对象 我需要将它们结合起来 我有这个代码 import io from PIL import Image import skimage io area
  • KnockoutJS css 绑定 != true

    我的视图模型正在返回truevalue 我正在尝试让我的模板相应地添加 CSS 问题是 我找不到 a true 的语法 我有这样的事情 div div 我想会说 如果选中 true 则应用 lw touched 如果选中 false 则应用
  • 行边框颜色

    我想设置边框 tr 至黄色 我可以设置边界 td 但不知道如何设置行边框 tr 这个怎么做 Thanks 这个例子 http jsfiddle net yahavbr a5TyU 在 IE8 Chrome 9 和 Firefox 3 6 上
  • Rubaxa Sortable 如何获取项目数组

    我知道这很明显 但我无法弄清楚 我正在使用 Rubaxa sortable 并且希望在添加 删除项目或对列表进行排序时使用 ajax 更新我的数据库 var editableList Sortable create document get
  • Prolog-映射(关联数组)

    我正在学习序言 想知道是否有人指导我如何做这个问题 这是这个领域的许多问题中的第一个 知道如何做这个问题将真正帮助我进步 先感谢您 使用 Prolog 定义一个谓词 mapof K M V 这样 当 K 实例化为键 M 实例化为映射而调用时
  • 使用 fetch API 时在 AJAX 调用期间显示微调器

    在我的项目中 我正在迁移到 React 因此不加载 JQuery 由于我不再使用 JQuery 因此对于 AJAX 调用我使用 fetch 使用 JQuery 我可以挂钩 AJAX 调用的开始和结束 因此可以非常轻松地将光标更改为微调器 我
  • 如何在 Design Automation API 中创建数据转换活动?

    我正在制作一个 Web 服务原型 以使用 Autodesk Forge 中的 Design Automation API 转换数据 我的方法是调用一个执行脚本的活动来导入目标数据文件 例如STEP IGES格式 例如 我创建了一个将 STE
  • Mockito 创建模拟对象时抛出 NullPointer

    我有一个集成测试 其中一些设置是使用 Guice 完成的 我正在使用 Mockito 来模拟一些依赖项 到目前为止 这对我来说效果很好 我需要使用 PowerMock 来实现其他一些依赖项 现在 Mockito 正在抛出一个NullPoin
  • React Native ios不显示本地图像

    环境 苹果系统 10 14 6 Xcode 11 0 反应 16 8 6 反应本机 0 60 5 项目文件夹结构 谷歌驱动器图像链接 https drive google com open id 1nvB O5LH2p vq9qyR V7c
  • Java 和 C# 应用程序之间的 SSL 通信

    我的目标是在 Java 服务器和用 C 编写的客户端之间建立安全通信 java服务器代码 System setProperty javax net ssl keyStore cert mySrvKeystore System setProp
  • 递归 http-api 调用后向订阅者发送消息

    我想获取节点列表来创建所述节点对象的数组 以便显示层次结构 基础数据 结构如下所示 ROOT ID 1 NODE ID 2 NODE ID 4 NODE ID 11 NODE ID 3 NODE ID 5 NODE ID 6 NODE ID
  • Django - QuerySet 中的唯一列表

    我有一个过滤后的查询集 其中有一个多对多字段 客户端 我想创建查询集中所有 Client 对象的唯一字典 因此 Projects Queryset Project1 client
  • Xamarin.Forms ListView 通过代码设置 SelectedItem

    我怎样才能设置SelectedItem我的代码中的 ListView 我的问题是 当我在代码中预选择一个项目时 它没有突出显示 ListView 在 xaml 文件中定义
  • 如何手动触发路由解析器

    我在访问之前解析用户帐户片段 of my 用户页面 应用程序路由 component ts path users id component UserComponent resolve user UsersService children p