在表格行上打开新标签页,单击angular6

时间:2019-12-04 13:16:33

标签: angular angular6

在我的项目中,我有一个动态表。单击表的新标签栏上的任何行都应打开,我也可以将数据传递给新标签栏。如何使用角度6做到这一点?基本上,我想在新标签页中点击表格行时调用另一个组件。

2 个答案:

答案 0 :(得分:1)

您可以使用window.open()

默认情况下,它会在新标签页中打开。

在路由器中添加一条路由以执行到组件的导航。 您可以处理路径中的参数。

答案提示:

您可以这样声明路线:

//router 
const appRoutes: Routes = [
  { path: 'hero/:id',      component: HeroDetailComponent }
];

接下来可以在组件中检索参数:

// Component code

constructor(
  private route: ActivatedRoute,
  private router: Router,
  private service: HeroService
) {}

ngOnInit() {
  this.hero$ = this.route.paramMap.pipe(
    switchMap((params: ParamMap) =>
      this.service.getHero(params.get('id')))
  );
}

有关更多信息,请遵循指南https://angular.io/guide/router

来自Showy的建议

here的文档中可以找到:

  

open()方法打开一个新的浏览器窗口或一个新的选项卡,具体取决于您的浏览器设置和参数值。

根据我在Chrome上使用默认设置进行的测试,window.open('fooLink/')正在打开一个新标签。

答案 1 :(得分:1)

不同的标签页是不同的应用实例,您无法在标签页之间传递数据。

除非您在新打开的标签页路线中将数据作为参数传递。

我的意思是您的路由应具有一个接受参数的网址,例如:

在html行中,您应该具有以下内容:

<a href="urlTo/example/test1/test2/test3" target="_blank"></a>

在路由中,您应该具有:

{
  path: 'example/:param1/:param2/:param3',
  component: YourComponent
}