如果只更改了该路由器上的参数,有没有办法阻止路由器上的解析?
例如,我有这条路线配置。
{path:'home/:status', component:HomeComponent,pathMatch:'full',resolve:{ actionList : HomeActionListResolve}}
此处resolve
返回完整数据集,组件只需根据status
(活动,已完成等)参数过滤数据。
我想要实现的是,如果用户第一次登陆此URL,则应调用resolve
,以便它可以获取数据。
但是如果用户只更改status
,那么resolve
即使被调用也不应该调用OR,那么它不应该让HTTP请求一次又一次地获取相同的数据。
有人可以建议一种方法来实现这个目标吗?
感谢您的帮助。
答案 0 :(得分:1)
@Injectable()
export class ResolveFactory implements Resolve<any> {
url: string[];
constructor() {
}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any>|Promise<any>|any {
// get the snapshot from activatedroutesnapshot
let urlStatus= route.url[0].path;
or
let urlStatus = state.url;
if(url.contains(split url to get the status){
return false;
} else {
do your work call service and add the status to the URL[] in Resolve
}
}
}