我无法路由到同一页面,并且不确定此处缺少什么。如果我删除setTimeout函数,它可以正常工作,但不能与setTimeout一起工作。
有什么办法可以延迟路由吗?
with
这是我的SamplePage,它将仅使用路由参数中的消息。 html文件仅显示该消息。
SamplePage
{
path: 'sample-page',
component: SamplePageComponent,
canActivate: [SampleGuard]
}
SampleGuard 这只会导航到同一页面6次,然后返回false。
import { Component, OnInit, OnDestroy } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Subscription } from 'rxjs';
@Component({
selector: 'app-sample',
templateUrl: './sample-page.component.html',
styleUrls: ['./sample-page.component.scss']
})
export class SamplePageComponent implements OnInit, OnDestroy {
message: string;
routeParamsSubscription: Subscription;
constructor(private activatedRoute: ActivatedRoute, private router: Router) {
console.log(' in constructor');
}
ngOnInit(): void {
console.log('in in ng init');
this.routeParamsSubscription = this.activatedRoute.params.subscribe(params => {
this.message = params.message;
});
}
ngOnDestroy(): void {
this.routeParamsSubscription.unsubscribe();
}
}
谢谢。