如何防止angular2路由器解决?

时间:2017-07-04 12:39:40

标签: angular angular2-routing

如果只更改了该路由器上的参数,有没有办法阻止路由器上的解析?

例如,我有这条路线配置。

{path:'home/:status', component:HomeComponent,pathMatch:'full',resolve:{ actionList : HomeActionListResolve}}

此处resolve返回完整数据集,组件只需根据status(活动,已完成等)参数过滤数据。

我想要实现的是,如果用户第一次登陆此URL,则应调用resolve,以便它可以获取数据。

但是如果用户只更改status,那么resolve即使被调用也不应该调用OR,那么它不应该让HTTP请求一次又一次地获取相同的数据。

有人可以建议一种方法来实现这个目标吗?

感谢您的帮助。

1 个答案:

答案 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
      }
    }
  }