2017-01-17 12 views
5

mój szablon wygląda tak:angular2 unset wyloty z routerLink

<router-outlet></router-outlet> 
<router-outlet name="rightpanel"></router-outlet> 

powiedzmy moje URL to

/#/page1(rightpanel:panel) 

Chcę, aby przełączyć się Strona2 i usunąć wylot pomocniczy przy pomocy dyrektywy routerLink. Próbowałem z następujących sposobów:

[routerLink]="['/page2', {outlets: {rightpanel: null}} 
[routerLink]="['/page2', {outlets: {}} 

W obu przypadkach strona jest włączony do page2, ale rightpanel jest nadal aktywny. Jedynym sposobem mogę rozwiązać to umieszczając poniższy kod w konstruktorze page2:

this.router.navigate([{outlets: {rightpanel: null}}]); 

co nie jest dobrym rozwiązaniem dla wielu powodów.

Korzystanie kątowej 2.4.3, 3.4.3 Router

Odpowiedz

3

Musisz ustawić główny wylot, a nie tylko URL. Osobiście dla mnie to wydaje się bardzo dziwne zachowanie, ale można zrobić to działa w ten sposób:

[routerLink]="[{outlets: { primary: 'page2', rightpanel: null }}]" 

Zgodnie z dokumentacją, primary to nazwa bezimiennego gniazdka.