如何将编码字符串作为参数发送到 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},
1 回答

月关宝盒
TA贡献1772条经验 获得超5个赞
好吧,您很可能需要该 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');
添加回答
举报
0/150
提交
取消