我在Angular中创建了此服务,该服务可防止ID与链接中的ID不同的用户转到该页面,但idTemp未定义。我在做什么错?
import { Injectable } from '@angular/core';
import {
CanActivate,
ActivatedRouteSnapshot,
RouterStateSnapshot,
Router,
ActivatedRoute,
} from '@angular/router';
@Injectable({
providedIn: 'root',
})
export class MeAdminGuardService implements CanActivate {
constructor(private router: Router, private route: ActivatedRoute) {}
canActivate(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
):
| boolean
| import('@angular/router').UrlTree
| import('rxjs').Observable<boolean | import('@angular/router').UrlTree>
| Promise<boolean | import('@angular/router').UrlTree> {
var idTemp = this.route.snapshot.params['id'];
console.log('ID:', idTemp);
if (
JSON.parse(localStorage.getItem('currentUser')).role == 'Admin' ||
JSON.parse(localStorage.getItem('currentUser')).id == idTemp
) {
return true;
}
this.router.navigate(['/homepage']);
}
}