Angular路由在从路由中删除canActivate后,在刷新页面时引发500内部服务器错误
创始人
2024-10-28 05:30:53
0次

这是因为在取消激活canActivate守卫时,路由无法访问所需的依赖项。为了解决这个问题,您可以使用Resolvers来接收服务端数据。使用Resolver可以在路由保持激活状态时获取数据,并防止从该路由刷新页面时出现500错误。

以下是一个使用Resolver的示例:

在你的路由模块(route.module.ts)中,导入Resolver并在路由中使用它:

import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { MyResolver} from './my-resolver.service'; import { MyComponent} from './my.component';

const routes: Routes = [ { path: 'my-path', component: MyComponent, resolve: { data: MyResolver } } ];

@NgModule({ imports: [RouterModule.forChild(routes)], exports: [RouterModule], providers: [MyResolver] })

export class MyRoutingModule {}

然后,创建Resolver的服务(my-resolver.service.ts):

import { Injectable } from '@angular/core'; import { Resolve } from '@angular/router'; import { MyDataService } from './my-data.service';

@Injectable() export class MyResolver implements Resolve { constructor(private dataService: MyDataService) {}

resolve(route: ActivatedRouteSnapshot) { return this.dataService.getData(); } }

在这个示例中,MyResolver服务是一个获取数据的服务。在路由中使用resolve选项,我们可以在MyComponent组件中通过ActivatedRoute来访问这个数据。

在MyComponent组件中,接收来自MyResolver服务的数据:

import { Component } from '@angular/core'; import { ActivatedRoute } from '@angular/router';

@Component({ selector: 'my-component', template: {{ data }} })

export class MyComponent { constructor(private route: ActivatedRoute) {}

ngOnInit() { this.route.data.subscribe(data => { console.log(data); this.data = data.data; }); } }

在MyComponent组件中,我们订阅ActivatedRoute

相关内容

热门资讯

黑科技透视器!万能透视辅助器免... 黑科技透视器!万能透视辅助器免费版(透视器),微乐常州麻将切实真的是有透视挂技巧1、下载好万能透视辅...
黑科技外挂!微乐辅助软件购买平... 黑科技外挂!微乐辅助软件购买平台(外挂),微乐明皇暗保总是真的有透视挂方法1、该软件可以轻松地帮助玩...
黑科技透视器!微信小程序微乐房... 黑科技透视器!微信小程序微乐房间透视(透视器),微乐山东麻将真是是有透视挂脚本微信小程序微乐房间透视...
黑科技辅助器!微乐贵阳捉鸡麻将... 黑科技辅助器!微乐贵阳捉鸡麻将辅助(辅助器),微信微乐一贯是有透视挂软件;1、用户打开应用后不用登录...
黑科技透视挂!微信小程序游戏充... 黑科技透视挂!微信小程序游戏充值破解(透视挂),龙江麻将微乐一直存在有透视挂方法1、全新机制【微信小...
黑科技作弊器!微乐小程序辅助脚... 黑科技作弊器!微乐小程序辅助脚本(作弊器),微乐湖北麻将本来存在有透视挂攻略一、微乐小程序辅助脚本可...
黑科技作弊器!微信小程序微乐辅... 黑科技作弊器!微信小程序微乐辅助器免费版(作弊器),微乐红包控制尾数切实是有透视挂app1、下载好微...
黑科技外挂!微乐贵阳足鸡麻将开... 黑科技外挂!微乐贵阳足鸡麻将开挂(外挂),微乐三打一一贯真的有透视挂脚本1、该软件可以轻松地帮助玩家...
黑科技辅助!微乐游戏竞技团辅助... 黑科技辅助!微乐游戏竞技团辅助(辅助),微乐河北石家庄麻将原来是有透视挂软件运微乐游戏竞技团辅助辅助...
黑科技透视挂!广西微乐小程序控... 黑科技透视挂!广西微乐小程序控制器(透视挂),微乐长春麻将切实真的有透视挂方法1、广西微乐小程序控制...