我在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
路径的第一个。
有什么想法吗?
答案 0 :(得分:0)
将应用模块的路径设置为
进行验证{
path: 'validate/:id/:token', loadChildren: () => System.import('./validate/validate.module')
}
然后检查