Angular2路由器让我获得其他网址

时间:2016-12-20 13:33:47

标签: angular typescript

我在Angular2网络应用上处理这些路线:'''/app''/login''/signin''/validate',{{1 },'/error'

我已在'**'上创建了路线配置:

app.router.ts

只有import { Routes } from '@angular/router'; import { ErrorComponent } from './error/error.component'; export const ROUTES: Routes = [{ path: '', redirectTo: 'login', pathMatch: 'full' }, { path: 'app', loadChildren: () => System.import('./layout/layout.module') }, { path: 'login', loadChildren: () => System.import('./login/login.module') }, { path: 'signin', loadChildren: () => System.import('./signin/signin.module') }, { path: 'validate', loadChildren: () => System.import('./validate/validate.module') }, { path: 'error', component: ErrorComponent }, { path: '**', component: ErrorComponent } ]; 路由必须重新收集查询参数。看看'/validate'模块和组件:

Validate

我正面临着与export const routes = [ {path: '', component: Validate} ]; @NgModule({ declarations: [ // Components / Directives/ Pipes Validate ], imports: [ CommonModule, FormsModule, RouterModule.forChild(routes), ] }) export default class ValidateModule { static routes = routes; } ---------------- import { Component, ViewEncapsulation, OnInit, OnDestroy } from '@angular/core'; import { Router, ActivatedRoute } from '@angular/router'; import { UsersService, UserDTO } from 'cest/ts'; @Component({ selector: '[validate]', templateUrl: './validate.template.html', encapsulation: ViewEncapsulation.None, styleUrls: ['./validate.style.scss'], providers: [ UsersService ] }) export class Validate implements OnInit, OnDestroy { private id: string; private token: string; constructor(private router: Router, private route: ActivatedRoute, private userService: UsersService) { } ngOnInit():void { this.sub = this.route.queryParams.subscribe(params => { this.id = params['id'] || undefined; this.token = params['token'] || undefined; } ngOnDestroy() { this.sub.unsubscribe(); } } 尝试获取正确模块/组件有关的问题。

问题是我试图获取此网址:router

如您所见,此网址由两个查询参数组成:http://localhost:3002/validate?id=am9yZGkxMEBsaXZpbmctZGlnaXRhbC13YXkuY29t&token=Ra8i4mrGbz1tf9y9vJHLAd-TKHNH0Ig8o699jXU1YU4%3D-id。在浏览器网址上设置此网址后,我不知道为什么Angular2路由器会被重定向到此网址:token

最后一个是追加http://localhost:3002/validate?id=am9yZGkxMEBsaXZpbmctZGlnaXRhbC13YXkuY29t&token=Ra8i4mrGbz1tf9y9vJHLAd-TKHNH0Ig8o699jXU1YU4%3D-#/login路径的第一个。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

将应用模块的路径设置为

进行验证
{
    path: 'validate/:id/:token', loadChildren: () => System.import('./validate/validate.module')
}

然后检查