J'ai des problèmes (toutes sortes d'erreurs dans des endroits très inattendus) et ma meilleure estimation est que cela arrive à cause de la façon dont le routage est mis en place.Angular2 Routage avec les paramètres échoue
Ceci est mon app-routing.module.ts
const appRoutes: Routes = [
{ path: 'calendar', component: CalendarComponent, canActivate: [AuthGuard] },
{ path: 'calendar/:urlString', component: CalendarComponent, canActivate: [AuthGuard] },
{ path: 'myprofile', component: ProfileComponent, canActivate: [AuthGuard] },
{ path: 'profiles', component: ProfileComponent, canActivate: [AuthGuard] },
{ path: 'locations', component: LocationComponent, canActivate: [AuthGuard] },
{ path: 'login', component: AuthComponent },
{ path: '', redirectTo: '/login', pathMatch: 'full' }
];
@NgModule({
imports: [ RouterModule.forRoot(appRoutes) ],
exports: [ RouterModule ]
})
Puis, en CalendarComponent.ts J'ai ce morceau de code:
imports (...)
constructor(
private activatedRoute: ActivatedRoute,
){
}
public ngOnInit(): void {
this.activatedRoute.params.subscribe((params: Params) => {
this.resolveURLParams(params);
});
}
public resolveURLParams(params): void {
// do stuff based on params
}
Quoi qu'il en soit, à seulement une demi il y a un an (certains RC @ Angular2) je pourrais commencer l'application en tapant l'un de ceux-ci directement dans le navigateur
localhost:3000
,
localhost:3000/calendar
ou
localhost:3000/calendar/2017-05-27
et obtiendrait des résultats attendus. Maintenant, je ai à partir de localhost:3000
, de sorte que les app routes moi par ../login
->../calendar
->../calendar/2017-05-27
, sinon je reçois toutes sortes de problèmes, comme Cannot read property subscribe of null
ou Cannot activate already activated outlet
. Je suppose que le routage a été mis à jour et je suis à la traîne. Toute aide à ce sujet, s'il vous plaît?
Il vous serait utile de répertorier les erreurs que vous voyez. – Muirik
Si je commence par '/ calendar', je reçois ** Erreur: Uncaught (en promesse): Erreur: Impossible d'activer une prise déjà activée **. Si je commence par '/ calendar/2017-05' je reçois ** Erreur: Uncaught (en promesse): TypeError: Impossible de lire la propriété 'subscribe' de null ** à la fonction resolveUrlParams – pop
Mhm, je ne peux pas reproduire votre type d'erreur. Pouvez-vous fournir un échantillon plnkr runnable? – Batajus