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

标签 angular angular4-router

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

private router: Router;
this.router.navigate(['/page', id]);

在路由中我有:

 const routes: Routes = [
{
    path: '',
    component: LayoutComponent,
    children: [
        { path: 'page', loadChildren: './page/page.module#PageModule' }
    ]
}
];

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

<小时/>

这是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() {

 }
}

这是 html:

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

  </div>
</div>

最佳答案

要手动重定向,您应该首先使用 createUrlTree 方法创建一个要重定向的 URL,然后再重定向。

const url = this.router.createUrlTree(['/page', id])
window.open(url.toString(), '_blank')
<小时/>

声明式导航应该可以工作。

<a target="_blank" [routerLink]="['/page', id]">
  Link
</a>

关于Angular - 将目标添加到路由器导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53580177/

相关文章:

javascript - 以 Angular 4 更改元素 <a> 的属性

Angular 4 路由器 : prevent direct browser navigation

javascript - Angular 5. 如何跟踪 Javascript 文件中的路由更改,或在组件级别执行功能?

javascript - 如何修复我的 Angular 4 路由

angular - 如何在 PrimeNG 中折叠/展开多个面板?

Angular 等待绑定(bind)完成

Angular 4 - 错误 : formControlName must be used with a parent formGroup directive

javascript - 为什么我的输入变量属性未定义( Angular )

Angular 4 隐式流回调和 Router Guard

angular - 带参数的 routerLink 正在更改 URL,但未导航或重新加载组件