我试图存储一条路径,当我从一条特定的路线导航时,我将重用它。目标是仅在从特定按钮导航时才还原存储的路径,而不是在诸如顶部菜单导航的其他导航上还原。
有以下三个组成部分。
1)HomeComponent-用户登录后,这就是登陆组件。
2)SearchComponent-用户从HomeComponent在顶部菜单中导航。用户在这里搜索多个条件(我要存储和重用的组件)。显示搜索结果。
3)DetailsComponent-从搜索结果中,用户使用每一行的编辑图标在此处导航。详细信息显示在这里。我这里有一个后退按钮,它将用户带到SearchComponent。我只想在用户使用此后退按钮进行导航时还原SearchComponent。还有一个顶层菜单,用户可以使用它进入SearchComponent。在这种情况下,我不想还原SearchComponent。
我经历了this link,并且能够存储和恢复SearchComponent。问题是,无论从哪里导航到SearchComponent,该组件都将还原。我只想在用户单击DetailsComponent的后退按钮时还原它。从顶部菜单导航时,我不想还原SearchComponent。请在下面找到我的代码。
export class AppRoutingCache implements RouteReuseStrategy {
routesToCache: string[] = ['home/search'];
storedRouteHandles = new Map<string, DetachedRouteHandle>();
shouldDetach(route: ActivatedRouteSnapshot): boolean {
return this.routesToCache.indexOf(route.data["key"]) > -1;
}
store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {
this.storedRouteHandles.set(route.data["key"], handle);
}
shouldAttach(route: ActivatedRouteSnapshot): boolean {
return this.storedRouteHandles.has(route.data["key"]);
}
retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {
return this.storedRouteHandles.get(route.data["key"]);
}
shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {
return future.routeConfig === curr.routeConfig;
}
}
预先感谢