数据链接转换?和=十六进制

时间:2019-12-10 13:19:34

标签: javascript html angularjs angular

我有问题。

在我的专业项目中,在.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 =移动器

代替此操作,而是单击按钮:(如果控制台在我前面登录,或者甚至当我在检查器中查看时,该链接都是正确的,那么当我单击该链接时,它将不起作用点击按钮)

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

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

我不知道我说的话是否很容易理解,请问是否需要。

3 个答案:

答案 0 :(得分:0)

已被编码,您可以使用

对其进行解码
decodeURI(YOURURL)

看看;

https://www.w3schools.com/jsref/jsref_encodeuri.asp

https://www.w3schools.com/jsref/jsref_decodeuri.asp

答案 1 :(得分:0)

我在前面集成了这样的变量

<div *ngIf="task.description" [innerHtml]="task.description | safehtml" routeDirective></div>

我想这是现​​在,使用innerHTML,它可以编码我的链接

答案 2 :(得分:0)

显然,我需要在此函数中添加一个queryparams来强制对URL进行解码,但我不知道我需要在此queryparams中写什么

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:});
    } 
  }

}