2017-06-29 209 views
1

我有问题,一些问题上angular2路由参数应用,则params是不确定的,我将向这个项目的一些代码: 它route.moduleAngular2路由,路由参数

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

和组件文件:

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

有什么办法可以工作吗?

+0

'RouterModule.forChild([ {路径: '学生/注册',成分:StudentRegisterComponent} ])'套这个特定的路线,不要用以前的路由表 – Michael

+0

谢谢,这可能是导致该错误的问题之一,我改变了这RouteModule.forRoot([{路径:“学生/注册”,成分:StudentRegisterComponent}]),但它仍然是t他同样的情况 –

回答

2

您没有使用在指定了tokenRoutes对象:

试试这个:

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