在我的应用程序中,我有从包(节点模块)公开的路由。因此,我无法将 canActivate 或 canDeactivate 用于节点模块内定义的路由。
因此,我开始订阅应用程序组件中的所有路线更改,并根据条件将用户重定向到不同的路线。
由于条件有 API 调用,因此路由更改不会在 navigationStart 中暂停,而是完成到其他页面的路由,一旦 API 调用成功,重定向就会发生到其他路由。
我该如何处理这个问题?无论如何,是否可以暂停 navigationStart 中的路线更改并在 API 调用后启用路线,或者是否有任何其他方法可以为所有路线(包括来自节点模块的路线)定义 canActivate 。
是的,通过使用解析器你可以实现这一点,
您需要首先创建解析器服务,它将实现“Resolve”接口。
在解析函数内,进行 API 调用。
并在路由声明中添加服务,如下所示 =>
解析:{数据:ResolveService}
因此,在进行 API 调用并且不返回数据之前,它不会启动 navigationStart
请看看这篇文章https://codeburst.io/understanding-resolvers-in-angular-736e9db71267 https://codeburst.io/understanding-resolvers-in-angular-736e9db71267
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)