首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想添加回删除的参数由用户使用角度6

我想添加回删除的参数由用户使用角度6
EN

Stack Overflow用户
提问于 2019-06-18 18:37:41
回答 1查看 39关注 0票数 0

如果用户手动从url中删除该参数。我想使用Angular 6在url中添加回参数的值。

https://localhost:4200/root/param1/product

这里用户正在从url中删除param1,

因此,现在的url将是这样的,

https://localhost:4200/root//product

并且它正在重定向到登录页面。但我不想要那个重定向。

我在这里使用resolve。

代码语言:javascript
运行
复制
resolve(route: ActivatedRouteSnapshot) {
const param1 = route.paramMap.get('opportunity');
if (param1 === null) {
    this.cart.createOpportunityId().subscribe((opp) => {
          this.router.navigate(['/root', opp, route.url[3].path]);
    });
 }
}

这里我写了一个条件来判断参数是否为空。但是当我尝试手动删除param1时。页面正在重定向。当参数值为空,当参数值错误时,我就会遇到这个问题,url就能正常工作。请帮我找出,如果用户手动删除网址中的参数,如何找到它是空的,以及如何添加回实际值。

EN

回答 1

Stack Overflow用户

发布于 2019-06-18 20:46:27

嗯,就像你说的,如果你删除param然后页面重定向,那么原因一定是你已经在你的路由模块中定义了这样的路由。像这样:

代码语言:javascript
运行
复制
{path: '/root/:anotherParam', redirectTo: '/login', pathMatch: 'full'}
{path: '/root/:opportunity/:anotherParam', Component: ComponentB}

当第二个路由由于没有参数机会而无法匹配时,第一个路由匹配,然后它会将您重定向到登录路由。就像你说的,如果你提供了错误的参数值,它会起作用,因为它与第二个路由匹配(有错误的机会)。为了重定向的目的,你应该重新考虑你的路线。您还可以使用localstorage或sessionStroage(最好是)来存储用户参数,然后检查路由中的参数,如果没有这样的参数,则可以从本地/会话存储中获取。希望能对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56647229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档