2017-06-29 5 views
1

ich Frage einige Probleme mit Routing-Parameter auf angular2 haben, sind params undefined, ich einige Code dieses Projekts zeigen: es route.moduleAngular2 Routing, Routing-Parameter

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 { } 

und die Komponentendatei :

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); 
} 
} 

Gibt es eine Möglichkeit, dass es funktionieren könnte?

+0

'RouterModule.forChild ([ {path: 'Student/registrieren', Komponente: StudentRegisterComponent} ]] 'setzt diese spezielle Route und verwendet nicht Ihre vorherige Routing-Tabelle – Michael

+0

Danke, es könnte eines der Probleme sein, die diesen Fehler verursachen, ich habe dies in RouteModule.forRoot geändert ([{Pfad: 'Schüler/Register', Komponente : StudentRegisterComponent}]), aber es ist immer noch t er gleiche Situation –

Antwort

2

Sie sind nicht Ihre Routes-Objekt, wo die token angegeben:

Versuchen Sie folgendes:

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 { }