新しいブラウザウィンドウでAngular 2アプリケーションを開くと、ブラウザページの履歴に10個のエントリが表示されます。これは、ルータに記載されている任意のページで、指定していないページ(すなわちhttp://localhost:8080またはhttp://localhost:8080/surveyなど)角度2 - ページの読み込み時に多数の履歴エントリ
const routes: Routes = [
{path: 'survey', component: SurveyComponent, canActivate: [AuthGuard]},
{path: 'survey/:id', component: SurveyComponent, canActivate: [AuthGuard]},
{path: '', component: HomeComponent},
{path: 'about', component: AboutComponent},
{path: 'terms', component: TermsAndConditionsComponent},
{path: 'map', component: MapComponent},
{path: 'what-next', component: WhatNextComponent},
{path: 'contact', component: ContactComponent},
{path: '**', redirectTo: '', pathMatch: 'full'},
];
私が使用しているルータ私が持っている3.1.2
"@angular/router": "3.1.2",
で発生します昨年3月からsimilar questionが見つかりましたが、回答はすでにAngularのコードで解決されたと主張しています。
更新 要求されたとして、ここで私は似たような状況があったと私はあなたが広告をルーティングする別のモジュールへのルートを分離することができている遅延ロードルート ことによってそれを解決し
import {Injectable} from '@angular/core';
import {AuthenticationService} from '../_services/index';
import {LoginModalService} from "../login_modal/login_modal.service";
import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router';
import {Observable} from 'rxjs/Observable';
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private authentication: AuthenticationService, private loginModalService: LoginModalService) {
}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if (this.authentication.isAuthenticated()) {
return Observable.of(true);
} else {
this.loginModalService.toggleVisable(state.url);
return Observable.of(false);
}
}
}
をimport.forRoot
へのメインルートを覚えていますコードベースを見て、私は角のアプリのいずれかでこれが発生していないので、私はこの問題を再現する方法がわからない... – MichaelSolati
そこに記載されているコンポーネントを見ることができれば、解決策を提供するか、少なくとも手がかりを与えてください。私が今提案することができるのは、ルートイベントをリスンすることだけです。この回答を確認してください。https://stackoverflow.com/questions/33520043/how-to-detect-a- route-change-in-angular-2/38080657#38080657 –
あなたは4.2.0にアップデートしようとしましたか? –