Sto ancora lavorando su un progetto utilizzando Angular2. Se desideri maggiori dettagli sul motivo per cui ho bisogno di fare ciò che ho intenzione di spiegare, ti preghiamo di fare riferimento a questo issue.Angolare 2: definizione di un router su un altro componente rispetto a quello avviato
Ho un AppComponent
che viene avviato tramite bootstrap
. È un componente molto semplice:
@Component({
selector: 'app-view',
directives: [ Devtools, MainComponent ],
template: `
<ngrx-devtools></ngrx-devtools>
<main-cmp></main-cmp>
`
})
export class AppComponent { }
Questo componente comprende un'altra: MainComponent
(tramite il selettore main-cmp
). Per alcuni motivi, desidero configurare il routing in MainComponent
.
Ecco il codice:
@Component({
selector: 'main-cmp',
directives: [ ROUTER_DIRECTIVES, NavComponent ],
template: `
<h1>App</h1>
<nav-cmp></nav-cmp>
<router-outlet></router-outlet>
`
})
@RouteConfig([
{ path: '/home', name: 'Home', component: HomeComponent, useAsDefault: true },
{ path: '/medias', name: 'Medias', component: MediasComponent }
])
export class MainComponent {
constructor (private router:Router, private store:Store<AppStore>) {
router.subscribe(url => store.dispatch(changeUrl(url)));
}
}
Infine, MainComponent
include NavComponent
che è un navigatore molto semplice.
Il problema è che, con questa configurazione, ho riscontrato questo problema: EXCEPTION: Component "AppComponent" has no route config. in [['Home'] in [email protected]:15]
.
Ovviamente, se si sposta la logica del mio router su AppComponent
, tutto funziona correttamente.
Quindi la mia domanda è: c'è un modo per fare routing roba in un altro componente rispetto a quello che viene avviato?
Grazie :).