如何将编码字符串作为参数发送到angular中的URL字符串中并在新标签页中打开。我正在尝试发送多个由'-'分隔的参数,并通过url转换为base64编码,但是这使我陷入找不到。我正在使用angular 8.,使用router.navigate,它工作正常,但是我想在新标签页中打开网址。
这是我在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
},
答案 0 :(得分:1)
那么您很有可能需要该URL字符串中的整个URL树才能使window.open正常工作。
从文档(https://angular.io/api/router/Router#createurltree)
// create /team/33/user/11
router.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 url
window.open(fullUrl, '_blank');