Angular 8 Перейти к другому компоненту в новом окне при действии строки сетки и передать всю строку - PullRequest
0 голосов
/ 17 июня 2020

При выборе действия из сетки я хочу открыть другой компонент в новой вкладке. В то же время я хочу передать данные всей строки, чтобы другой компонент загружался данными при открытии на новой вкладке.

Я пробовал следующее:


//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> 


1 Ответ

1 голос
/ 17 июня 2020

Когда вы открываете новую вкладку, две веб-страницы разделяются, и состояние не переносится.

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');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...