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

如何将编码字符串作为参数发送到 Angular 的 URL 字符串中并在新选项卡中打开。我正在尝试发送由“-”分隔的多个参数并通过 url 转换为 base64 编码,但它让我找不到。我正在使用 angular 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

},


德玛西亚99
浏览 157回答 1
1回答

月关宝盒

好吧,您很可能需要该 url 字符串中的整个 url 树才能使 window.open 工作。来自文档(https://angular.io/api/router/Router#createurltree)// create /team/33/user/11router.createUrlTree(['/team', 33, 'user', 11]);最重要的是(https://angular.io/api/router/Router#serializeurl)serializeUrl(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 urlwindow.open(fullUrl, '_blank');
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript