angular - 无法在 Angular 8 中为 window.open(url) 更改 url(路由);
问题描述
我是 Angular 8 的新手。在我的 localhost:4200 我有一个链接:
单击此处下载我的计划 (PDF)
我点击链接,我的网址是http://localhost:4200/#/LabViewerPDF但它仍然显示:
单击此处下载我的计划 (PDF) 实验室查看器作品!
我期待它显示:
实验室查看器工作!
但它仍然显示,但网址是http://localhost:4200/#/LabViewerPDF:单击此处下载我的计划 (PDF) 实验室查看器作品!
这是我的 app.component.html
<a (click)="selectLab()">Click here to download my Plan (PDF)</a>
<router-outlet></router-outlet>
这是我的 app.component.ts 代码:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
title = 'test1';
selectLab() {
let url = `/#/LabViewerPDF`;
window.open(url);
}
}
这是我的 app-routing.module.ts:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LabViewerComponent } from './lab-viewer/lab-viewer.component';
const routes: Routes = [
{ path: 'LabViewerPDF', component: LabViewerComponent}
];
@NgModule({
imports: [RouterModule.forRoot(routes, {useHash: true})],
exports: [RouterModule]
})
export class AppRoutingModule { }
这是我的实验室-view.component.html:
<p>lab-viewer works!</p>
为什么我点击链接后会显示原始值和新值:
单击此处下载我的计划 (PDF) 实验室查看器作品!
我希望在单击链接后仅显示:lab-viewer 有效!
解决方案
您不能为此使用窗口,您必须使用router
. 尝试
<a routerLink="/LabViewerPDF">Click here to download my Plan (PDF)</a>
或者
import { Router } from '@angular/router';
.......
constructor(private router: Router) {}
selectLab() {
this.router.navigate(['/LabViewerPDF']);
}
推荐阅读
- scala - 关于重构 Scala 的建议 - 我可以消除在 foreach 循环中使用的变量吗
- iis - DevOps IIS Web App 部署 XML 变量替换忽略名为 SECRET_KEY 的键
- java - 无法查找 JNDI 名称 [jdbc/jbpm-ds]
- ios - 使用偏移量启动 CABasicAnimation
- spring-boot - oauth2 spring security with spring session 使那些不活动 30 分钟的用户无效
- linux - 在 Ubuntu 上使用 PowerShell 检查文件是否可执行
- python-3.x - 对字符串使用 split 方法会返回一个空字符串
- python - 有人可以告诉什么 remove_punct_dict 命令在做什么?最后一行命令的输出是什么?
- flutter - Flutter:如何将打印输出转换为列表
? - android - 无法使用 QtAndroid::hideSplashScreen() 隐藏 QtAndroid 启动画面;