2016-08-16 5 views
6

mam złożony interfejs gdzie mam listę dynamicznych elementów (wyobrazić widget akordeon) w stronie (tutaj o stronie) i gdy zgłoszę URL:Jak mogę dynamicznie pozycjonować <router-outlet> w zależności od adresu URL?

/about/item/1 

go „Trasy” do jeden z elementów akordeonu i ładuje zawartość w pozycji klikniętej listy (jedna pozycja na akordeonie).

Konkretnie, co chcę zrobić to:

@Component({ 
    selector: 'app-about', 
    template: ` 
     <ul> 
      // dynamic list 
      <li> 
       <a [routerLink]="['/about/item', 1]">Item 1</a> 
       // <router-outlet></router-outlet> 
       // if url is /about/item/1 
      </li> 
      <li> 
       <a [routerLink]="['/about/item', 2]">Item 2</a> 
       // <router-outlet></router-outlet> 
       // if url is /about/item/2 
      </li> 
     </ul>   
    ` 
}) 
export class AboutComponent { } 

używam kątowa: 2.0.0-rc.4, kątowe/router: 3.0.0-beta.2

To nie wydaje się być właściwą praktyką. Jak mogę to zrobić "drogą kanciastą"?

Thanks a lot

+0

Podobno jest to kwestia RC5, gdzie nie można dynamicznie umieścić router ujście w widoku z powodu sytuacji wyścigu jak wyjaśniono tutaj. Mam nadzieję, że moja sprawa zostanie rozwiązana w następnej wersji routera. https://github.com/angular/angular/issues/9500 –

Odpowiedz

1

Mógłbyś podać nazwiska router spustów oraz określić nazwę na trasie którego wylocie komponent powinien być dodany do

<router-outlet name="a"></router-outlet> 
<router-outlet name="b"></router-outlet> 
{ path: 'a', component: A, outlet: 'a'} 
{ path: 'b', component: B, outlet: 'b'} 

Patrz także

+0

Mam dynamiczną listę pozycji ... czy mogę ustawić dynamiczne trasy? w moim komponencie o stronie? –

+0

http://stackoverflow.com/questions/37623306/angular2-rc-and-dynamic-routes/38095784#38095784. Możesz także używać parametrów trasy (nie znasz swoich szczegółowych wymagań), w których część ścieżki jest zmienna, aby nie potrzebować nowej trasy dla każdej wartości. Będziesz potrzebował trasy dla każdego komponentu, ale musisz dodać komponent w sposób imperatywny w zależności od parametru trasy wewnątrz przekierowanego komponentu. –

+0

Chcę dokładnie ten sam wylot routera (nie chcę zawężać trasy). Chodzi raczej o to, gdzie jest umieszczony na stronie niż sama definicja. –

Powiązane problemy