首页 > 解决方案 > 数据链路转换 ? 和 = 十六进制

问题描述

我有个问题。

在我的专业项目中,在 .js 文件中,创建一个带有按钮的 div,以将此值与对象相关联。

这是他们在我的 .js 变量中“创建”按钮的方式。

task.description = `
    <div>
      <button class="btn btn-warning btn-md m-b-s"
         data-link="/talent/vendors/${category._id}?category=${category.title}">
         START CHAT
      </button>
    </div>`;

在前面,如果做一个控制台日志,我的链接是正确的:

/talent/vendors/5679764aba9?category=Movers

而不是这个,当我点击按钮时我有这个:(如果在我的前面做一个控制台登录,或者即使在我的检查器中查看,链接是正确的,当我点击它时它不起作用按钮 )

/talent/vendors/5679764aba9%3Fcategory%3DMovers

这 '?' 在正确的链接中现在是 '%3F' 而 '=' 是 '%3D',实际上只是将这些字符更改为十六进制值,我不明白为什么。

我不知道我所说的是否很好理解,所以如果你需要,请提出问题。

标签: javascripthtmlangularjsangular

解决方案


显然,我需要在这个函数中添加一个查询参数,以强制对 URL 进行解码,但我不知道我需要在这个查询参数中写什么

export class routeDirective {

  constructor(private el: ElementRef, private router: Router) {}

  @HostListener('click', ['$event.target']) onClick($event) {
    const goRoute = $event.getAttribute('data-link');

    if (!!goRoute) {
      this.router.navigate([goRoute], {queryParams:});
    } 
  }

}

推荐阅读