fix(router): fix reuse strategy

This commit is contained in:
mhartington
2018-05-29 16:01:50 -04:00
parent 442917d63a
commit bd53bba5e8

View File

@ -1,8 +1,11 @@
import { ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy } from '@angular/router';
import {
ActivatedRouteSnapshot,
DetachedRouteHandle,
RouteReuseStrategy
} from '@angular/router';
import { deepEqual, objectValues } from './util';
export class IonicRouteStrategy implements RouteReuseStrategy {
shouldDetach(_route: ActivatedRouteSnapshot): boolean {
return false;
}
@ -18,14 +21,25 @@ export class IonicRouteStrategy implements RouteReuseStrategy {
return null;
}
shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {
shouldReuseRoute(
future: ActivatedRouteSnapshot,
curr: ActivatedRouteSnapshot
): boolean {
// checking router params
const futureParams = objectValues(future.params);
const currParams = objectValues(curr.params);
if (futureParams && !!futureParams.length && currParams && currParams.length > 0) {
if (
futureParams &&
!!futureParams.length &&
currParams &&
currParams.length > 0
) {
// If the router params do not match, render the new component
return deepEqual(future.params, curr.params);
return (
deepEqual(future.params, curr.params) &&
future.routeConfig === curr.routeConfig
);
} else {
return future.routeConfig === curr.routeConfig;
}