Javascript 如何将编码字符串作为参数发送到url字符串中并在新选项卡中打开

Javascript 如何将编码字符串作为参数发送到url字符串中并在新选项卡中打开,javascript,angular,angular8,Javascript,Angular,Angular8,如何将编码字符串作为参数发送到URL字符串中,并在新选项卡中打开。我试图发送多个以“-”分隔的参数,并通过url将其转换为base64编码,但这会使我陷入“找不到”状态。我用的是角度8。使用router.navigate,工作正常,但我想在新选项卡中打开url 这是我在TS中的代码 goToAssessmentPage(event, assignmentId, courseId, studentId, instituteId, sectionId , assignment_submission

如何将编码字符串作为参数发送到URL字符串中,并在新选项卡中打开。我试图发送多个以“-”分隔的参数,并通过url将其转换为base64编码,但这会使我陷入“找不到”状态。我用的是角度8。使用router.navigate,工作正常,但我想在新选项卡中打开url

这是我在TS中的代码

 goToAssessmentPage(event, assignmentId, courseId, studentId, instituteId, sectionId , assignment_submission_id) {
    event.preventDefault()
    const string:string = btoa(courseId + '-' + assignmentId + '-' + studentId + '-' + instituteId + '-' + sectionId + '-' + assignment_submission_id)
    const url: string = string + '/grader-assessment';
    window.open(url, '_blank');
  }
app.routing.ts

{
    path: ':params/grader-assessment',
    component: GraderAssessmentPageComponent
},

您很可能需要在该url字符串中包含整个url树,window.open才能工作

从文件中()

除此之外()

序列化url(url:UrlTree):字符串

因此,在您的情况下,它将类似于:

const string:string = btoa(courseId + '-' + assignmentId + '-' + studentId + '-' + instituteId + '-' + sectionId + '-' + assignment_submission_id)
const fullUrl:string = this.router.serializeUrl(router.createUrlTree([string, '/grader-assessment']));
// Then you navigate to this full url
window.open(fullUrl, '_blank');

您是否尝试将url与路由器链接和目标_blank一起放入?@brunocerectto-如果可以用于他的情况,这也是一个很好的解决方案。这是以编码方式发送参数的角度在新选项卡中打开ingurl的完美方式。
const string:string = btoa(courseId + '-' + assignmentId + '-' + studentId + '-' + instituteId + '-' + sectionId + '-' + assignment_submission_id)
const fullUrl:string = this.router.serializeUrl(router.createUrlTree([string, '/grader-assessment']));
// Then you navigate to this full url
window.open(fullUrl, '_blank');