2

I've got question some issues with routing parametres on angular2, params are undefined, i will show some code of this project: it's route.module

    import { NgModule } from '@angular/core';
import {RouterModule, Routes} from '@angular/router';
import {StudentRegisterComponent} from './student-register/student-register.component';

const routes: Routes = [

    { path: 'student/register', component: StudentRegisterComponent },
    { path: 'student/register/:token', component: StudentRegisterComponent }
];

@NgModule({
    imports: [
        RouterModule.forChild([
            { path: 'student/register', component: StudentRegisterComponent }
        ])
    ],
    exports: [RouterModule]
})
export class StudentRoutingModule { }

and the component file:

import { Component, OnInit } from '@angular/core';
import { Http } from '@angular/http';
import {Router, ActivatedRoute, Params} from '@angular/router';
@Component({
    moduleId: module.id.toString(),
    selector: 'student-register',
    templateUrl: 'student-register.component.html'
})
export class StudentRegisterComponent {
constructor(private activatedRoute: ActivatedRoute
    )
ngOnInit() {
    // subscribe to router event
        let param1 = this.activatedRoute.snapshot.params['token'];
        console.log('params: ' + param1 );
}
}

Is there any way that it could work?

user3071284
  • 6,955
  • 6
  • 43
  • 57
Jędrek Markowski
  • 444
  • 3
  • 6
  • 25
  • `RouterModule.forChild([ { path: 'student/register', component: StudentRegisterComponent } ])` sets this particular route and don't use your previous routing table – Michael Jun 29 '17 at 12:21
  • Thanks, it could be one of the problem causing this error, I changed this to RouteModule.forRoot([ { path: 'student/register', component: StudentRegisterComponent } ]), but it's still the same situation – Jędrek Markowski Jun 29 '17 at 13:04

1 Answers1

3

You are not using your Routes object where the token is specified:

Try this:

import { NgModule } from '@angular/core';
import {RouterModule, Routes} from '@angular/router';
import {StudentRegisterComponent} from './student-register/student-register.component';

const routes: Routes = [

    { path: 'student/register', component: StudentRegisterComponent },
    { path: 'student/register/:token', component: StudentRegisterComponent }
];

@NgModule({
    imports: [
        RouterModule.forRoot(Routes)
    ],
    exports: [RouterModule]
})
export class StudentRoutingModule { }
Michael
  • 1,027
  • 10
  • 22