Javascript 数据链路转换?和=十六进制
我有个问题 在我的专业项目中,在.js文件中,创建一个带有按钮的div,将该值与对象关联 这是他们在.js中“创建”我的变量中的按钮的方式Javascript 数据链路转换?和=十六进制,javascript,html,angularjs,angular,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}">
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>`;
task.description=`
开始聊天
`;
在前面,如果一个用户做了一个控制台日志,我的链接是正确的:
/人才/供应商/5679764aba9?类别=搬运工
相反,当我点击按钮时,我得到了这样的信息:(如果a在我的前面做控制台日志,或者甚至在我的inspector中查看时,链接是正确的,当我点击按钮时它不工作)
/人才/供应商/5679764aba9%3F类别%3移动者
正确链接中的“?”现在是“%3F”,而“=”是“%3D”,事实上,这只改变了这些字符的十六进制值,我不明白为什么
我不知道我说的话是否可以理解,所以如果需要的话可以问这个问题 这已经被编码,你可以用
decodeURI(YOURURL)
看一看,
我将变量像这样集成在前面
<div *ngIf="task.description" [innerHtml]="task.description | safehtml" routeDirective></div>
我认为这是一个关键时刻,使用innerHTML,它对我的链接进行编码显然,我需要在这个函数中添加一个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:});
}
}
}
它是URL编码的值。试试空白``将变成
%20
事实上,链接只有在我点击按钮时才被编码,而不是在.js中,所以我可能需要在我的html页面中解码?你只试过用div吗<代码>是,但它不工作,如果我这样做,按钮将无法识别