を取得しますAngular2ルータは、私は私のAngular2 Webアプリケーションにこれらのルートを取り扱いしています私の他のURLのルート
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
が正しいモジュール/コンポーネントを取得しようとするとどのように関連したトラブルで上を向いています。
問題は、私はこのURLを取得しようとしています:http://localhost:3002/validate?id=am9yZGkxMEBsaXZpbmctZGlnaXRhbC13YXkuY29t&token=Ra8i4mrGbz1tf9y9vJHLAd-TKHNH0Ig8o699jXU1YU4%3D-
。
このURLは、id
とtoken
の2つのクエリパラメータで構成されています。私はAngular2ルータがこのURLをブラウザurlの場所に設定した後、なぜこのURLにリダイレクトされたのか分かりません:http://localhost:3002/validate?id=am9yZGkxMEBsaXZpbmctZGlnaXRhbC13YXkuY29t&token=Ra8i4mrGbz1tf9y9vJHLAd-TKHNH0Ig8o699jXU1YU4%3D-#/login
最後のものは、最初に#/login
パスを追加したものです。
アイデア?
共有コードをチェック – ranakrunal9