如何在navigationStart路由器事件中暂停路线更改

2024-04-27

在我的应用程序中,我有从包(节点模块)公开的路由。因此,我无法将 canActivate 或 canDeactivate 用于节点模块内定义的路由。

因此,我开始订阅应用程序组件中的所有路线更改,并根据条件将用户重定向到不同的路线。

由于条件有 API 调用,因此路由更改不会在 navigationStart 中暂停,而是完成到其他页面的路由,一旦 API 调用成功,重定向就会发生到其他路由。

我该如何处理这个问题?无论如何,是否可以暂停 navigationStart 中的路线更改并在 API 调用后启用路线,或者是否有任何其他方法可以为所有路线(包括来自节点模块的路线)定义 canActivate 。


是的,通过使用解析器你可以实现这一点,

  1. 您需要首先创建解析器服务,它将实现“Resolve”接口。

  2. 在解析函数内,进行 API 调用。

  3. 并在路由声明中添加服务,如下所示 => 解析:{数据:ResolveService}

  4. 因此,在进行 API 调用并且不返回数据之前,它不会启动 navigationStart 请看看这篇文章https://codeburst.io/understanding-resolvers-in-angular-736e9db71267 https://codeburst.io/understanding-resolvers-in-angular-736e9db71267

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

如何在navigationStart路由器事件中暂停路线更改 的相关文章

  • 可安装发动机安装在什么路径上

    我需要从可安装引擎的布局内部知道它当前安装在什么路径上 该怎么做呢 例如 我的routes rb 包含以下行 mount BackendCore Engine gt backend 从 BackendCore 内部 我需要访问 backen
  • Angular 2 角色和权限

    我在我的项目中使用了 angular2 和 laravel 5 3 在laravel中 当用户登录服务器时 将发送用户的权限以处理角度授权 所以我写了一个守卫来保护无法访问的用户的路由 这是我的警卫类代码 export class Acce
  • Django '/' 仅主页 url 错误

    我正在使用 Django 2 0 现在我不知道如何为主页创建一个 空 url 意思是 我希望它路由到web com or web com 我尝试了这段代码 但它不起作用 urlpatterns path admin admin site u
  • 正确使用 zend 框架中的语言

    我有一个带有两个模块 管理和公共 的 Zend 应用程序 对于公共 我有以下插件来解析我的友好 URL class Custom Controller Plugin Initializer extends Zend Controller P
  • 使用 Angular 2 连接 Google Maps Nativescript 插件

    我正在尝试使用 Nativescript 的 Google 地图插件 https github com dapriett nativescript google maps sdk https github com dapriett nati
  • 在本地主机上的 laravel 中将 slack 连接到 botman

    这是我在 laravel 中的路线文件 我将任何 url 与调用闭包的 botman 相匹配 该闭包为 botman 注册一个 slack 驱动程序并监听消息 hello 在闲暇时我试图设置Request URL在使用此事件订阅下http
  • Next js 子组件的父路由组件

    让我们想象一下我们有admin有几个页面的模块定制 settings account 这些页面中的每一个都应该有一些通用的布局 sidebar 对于标准 React 应用程序 我将做下一步来实现应用程序的这一部分 我会创建父路线 admin
  • HashLocation 策略有什么缺点吗?

    我目前正在学习 Angular 我已经使用 HashLocation 实现了路由器 因为 PathLocation 在 Apache 服务器中不起作用 我浏览了各种帖子来解决这个问题 但最终不得不选择 Apache 的 HashLocati
  • ASP.NET Core 授权重定向到错误的 URL

    我正在尝试运行一个映射了以下路由的 Web 应用程序 app UseMvc routes gt routes MapRoute default WoL controller Account action Login id 如果用户未经过身份
  • 我可以在不使用 system() 命令的情况下用 C 读/写路由表吗?

    我有用 C 编写的代码 我想使用存储在路由表中的 C 代码信息 是否可以 您还可以运行 strace route add 来查看如何route命令执行此操作 在我的系统上 它使用ioctl with SIOCADDRT 稍微搜索一下就会发现
  • Angular2 pathLocationStrategy:url更改导致页面重新加载

    使用时哈希位置策略 https angular io docs ts latest api router HashLocationStrategy class html我可以通过手动更改浏览器地址栏中的地址来更改路线 而无需重新加载页面 I
  • Laravel 将数据传递给路由

    我是 Laravel 5 的新手 我需要一些帮助 因为我无法解决我的简单问题 我有一个数据列表http sample com partners http sample com partners如果我单击数据链接 我希望将其重定向到 http
  • 检查 401,然后重定向 Angularjs,但仅在某些路由上

    我有一个很好的角度服务 可以通过查看服务器是否返回 401 错误消息来检查用户是否登录 如果是 用户将被重定向到登录页面 这很有效 但问题是它对于我的所有页面来说都是完全全局的 我有一条特殊路线位于 explore 顺便说一句 使用 UI
  • Angular 2 路由器无法处理传递的多个参数

    我创建了一个示例 Plunker 将多个参数传递到下一页 但它不起作用 这是 Plunker 演示 其中单击项目后危机中心路由不起作用 http plnkr co edit ngNSsKBzAuhaP0EjKVJX p preview ht
  • 如何使用 Jersey 的内部路由机制来提取类/方法引用?

    我正在运行 Jersey 1 8 应用程序 Jersey 作为 Servlet 运行 我需要写一个小服务程序过滤器给定一个简单的请求 响应 能够确定哪个 REST 资源 方法将响应该请求并从注释中提取值 例如 假设我有以下资源 Path f
  • 如果表单脏则阻止路由 [ Angular 2 ]

    我被这个挡住了在 Angular 2 中 我需要阻止任何用户单击事件 甚至浏览器刷新 如果页面中的表单为dirty 你能帮我出出主意吗 看来您正在寻找可以停用 https angular io docs ts latest guide ro
  • Rails 命名空间与嵌套资源

    假设我的应用程序有两个模型 Foo 和 Bar Foo 可选地属于 Bar 现在我可以查看单个 Foo 或者搜索特定的 Foo FoosController 会处理所有这些 我的网址是这样的 foos 1 and foos new 有时我想
  • 为什么不重新评估 Binding.scala 路由器?

    我正在尝试通过 Binding scala 为个人项目构建通用路由器 我定义了一个PageState trait sealed trait WhistState def text String def hash String def ren
  • ng2-select 中的数据绑定失败

    我正在尝试使用 ng2 select 将对象数组绑定到下拉列表 当我尝试使用字符串数组时它工作正常 private category Array value 1 text Table value 2 text Chair value 3 t
  • 具有多个可选参数的 Rails 3 路线

    我正在尝试创建一个具有可选参数和不同顺序的 Rails 路线 这个问题描述了一个类似的问题 具有多个 可选且漂亮参数的路由 https stackoverflow com questions 14007593 routes with mul

随机推荐