首页 > 解决方案 > 已处理字符串中的角度路由器斜线会破坏 url 匹配

问题描述

我有以下情况(Angular 开发新手)

  1. 从 API 返回的数据块,在*ngFor我有以下

<ion-card-title (click)="showCat(customer.brandname)">{{customer.brandname}}</ion-card-title>

并且函数包含

  showCat(name){
    this.router.navigate(["/brandsview/" + name + "/"]);
  }

+ 角度路由中所需的修饰符。

当某些项目产生的 customer.brandname 已经包含斜线时会出现问题。

因此,如果在一个项目中,例如BMW, url 将没有问题。但是当像BMW/MORIS这样的项目被传递时,它会破坏 url 结构。

我无法访问 API 端点或数据库,因此我可以在本地剥离斜杠(尽管我必须学习如何在 TS 中做到这一点)但是当我在另一个组件中匹配它时它不会匹配数据库检查这需要品牌名称与数据库中的品牌名称相匹配。

在不破坏东西的情况下实现这一目标的想法/最佳实践?谢谢。

标签: angulartypescript

解决方案


您需要encodeURIComponent(name)在传递给路由器之前使用。

正如您所提到的,您需要在消费端对其进行解码以获取原始字符串。


推荐阅读