हैलो मुझे किसी समस्या का सामना करना पड़ा। मेरे CanActivate गार्ड दो बार, कहा जाता है जब मैं कोशिश कर रहा पेज है कि permited नहीं है क्योंकि मैं में लॉग इन नहीं कर रहा हूँ पर जाएँ।कोणीय 2 CanActivate को दो बार
मैं 1 जड़ मॉड्यूल है, और मेरी CanActivate गार्ड और अन्य सेवाओं के प्रदान की है।
अग्रिम धन्यवाद!
const appRoutes: Routes = [
{
path: "",
pathMatch: "full",
redirectTo: "/meal-list",
},
{
path: "login",
component: LoginComponent,
},
{
path: "meal-list",
component: MealListComponent,
canActivate: [AuthActivateGuard],
}
];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes, {useHash: true});
और गार्ड:
@Injectable()
export class AuthActivateGuard implements CanActivate {
constructor(private authService: AuthService,
private router: Router) {
console.log("guard created");
}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean>|boolean {
if (!this.authService.authenticated) {
return this.authService.checkLogged().map(res => {
this.authService.authenticated = true;
return true;
}).catch(()=> {
this.authService.authenticated = false;
this.router.navigate(["login"]);
return Observable.of(false);
});
}
return true;
}
}
बस आकस्मिक चमक पर, आपके कोड में बहुत से 'वापसी' विवरण प्रतीत होते हैं ... – sova