如何将编码字符串作为参数发送到 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
},
最佳答案
那么,您很可能需要该 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');
关于javascript - 如何将编码字符串作为参数发送到 Angular 中的url字符串并在新选项卡中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59069966/