Angular 8 在新 window 网格行操作中路由到另一个组件并传递整行
Angular 8 Route to another component in new window on grid row action and pass entire row
在网格中的 select 操作中,我想在新选项卡中打开另一个组件。同时我想传递整行数据,以便在新选项卡中打开时另一个组件加载数据。
我试过以下方法:
//redirects and load new component data correctly but opens in current tab instead of new tab
navigate(row: ExampleRow){
this.router.navigate(['/new-page/1'], {state: {data: {row}}}); }
//open new component in current window loaded with data but opens component with empty data in new tab as well
navigate(row: ExampleRow){
this.router.navigate([]).then(result => { window.open('/new-page/1', '_blank'); }); }
// Throws error
<a [routerLink]="['/new-page', row.id]" [state]="{ data: row }" >Navigate</a>
当您打开新标签时,两个网页是分开的,状态不会延续。
navigate(row) {
localStorage.setItem('data', JSON.stringify(row));
window.open('/new-page/1', '_blank');
}
another.component.ts
ngOnInit(): void {
this.localTemp = JSON.parse(localStorage.getItem('data'));
// here you can choose to keep it in the localStorage or remove it as shown below
localStorage.removeItem('data');
}
在网格中的 select 操作中,我想在新选项卡中打开另一个组件。同时我想传递整行数据,以便在新选项卡中打开时另一个组件加载数据。
我试过以下方法:
//redirects and load new component data correctly but opens in current tab instead of new tab
navigate(row: ExampleRow){
this.router.navigate(['/new-page/1'], {state: {data: {row}}}); }
//open new component in current window loaded with data but opens component with empty data in new tab as well
navigate(row: ExampleRow){
this.router.navigate([]).then(result => { window.open('/new-page/1', '_blank'); }); }
// Throws error
<a [routerLink]="['/new-page', row.id]" [state]="{ data: row }" >Navigate</a>
当您打开新标签时,两个网页是分开的,状态不会延续。
navigate(row) {
localStorage.setItem('data', JSON.stringify(row));
window.open('/new-page/1', '_blank');
}
another.component.ts
ngOnInit(): void {
this.localTemp = JSON.parse(localStorage.getItem('data'));
// here you can choose to keep it in the localStorage or remove it as shown below
localStorage.removeItem('data');
}