角度-将目标添加到路由器导航

Mar*_*ina 2 angular angular4-router

我要做的是在另一个选项卡或弹出窗口中打开路由器导航的目标。我的指示是这样的:

private router: Router;
this.router.navigate(['/page', id]);
Run Code Online (Sandbox Code Playgroud)

在路由中,我有:

 const routes: Routes = [
{
    path: '',
    component: LayoutComponent,
    children: [
        { path: 'page', loadChildren: './page/page.module#PageModule' }
    ]
}
];
Run Code Online (Sandbox Code Playgroud)

我想在另一个标签或弹出窗口中打开此链接。我能做什么?


这是page.ts的代码

@Component({
 selector: 'app-etichetta',
 templateUrl: './page.component.html',
 styleUrls: ['./page.component.scss'],
 animations: [routerTransition()]
})
export class PageComponent implements OnInit {


 constructor(private router: Router,
    private route: ActivatedRoute,
    public appService: AppService) {
 }


 ngOnInit() {

 }
}
Run Code Online (Sandbox Code Playgroud)

这是HTML:

<div [@routerTransition]>
  <br>
  <div class="row">

  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

Pan*_*kar 5

要手动重定向,您应该首先创建一个URL,该URL使用createUrlTreemethod 进行重定向,然后重定向。

let url = this.router.createUrlTree(['/page', id])
window.open(url.toString(), '_blank')
Run Code Online (Sandbox Code Playgroud)

声明式导航也可以。

<a target="_blank" [routerLink]=['/page', id]> Link</a>
Run Code Online (Sandbox Code Playgroud)


Saj*_*ran 1

Angular 不支持导航到新选项卡,您可以使用 window.open 来执行此操作

window.open(url, '_blank');
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,但我尝试了这个,链接在新选项卡上正确打开(本地主机/页面),但 1 秒后它重定向到本地主机 (2认同)