route_state.ts文件
import {Data, ResolveData, Route} from './config';
import {PRIMARY_OUTLET, Params} from './shared';
import {UrlSegment, UrlSegmentGroup, UrlTree} from './url_tree';
import {merge, shallowEqual, shallowEqualArrays} from './utils/collection';
import {Tree, TreeNode} from './utils/tree';
export class RouterState extends Tree<ActivatedRoute> {
constructor(root: TreeNode<ActivatedRoute>, public snapshot: RouterStateSnapshot) {
super(root);
setRouterStateSnapshot<RouterState, ActivatedRoute>(this, root);
}
export function createEmptyState(urlTree: UrlTree, rootComponent: Type<any>): RouterState`
export function createEmptyStateSnapshot(
urlTree: UrlTree, rootComponent: Type<any>): RouterStateSnapshot
export class ActivatedRoute {
_futureSnapshot: ActivatedRouteSnapshot;
snapshot: ActivatedRouteSnapshot;
_routerState: RouterState;
constructor(
public url: Observable<UrlSegment[]>, public params: Observable<Params>,
public queryParams: Observable<Params>, public fragment: Observable<string>,
public data: Observable<Data>, public outlet: string, public component: Type<any>|string,
futureSnapshot: ActivatedRouteSnapshot) {
this._futureSnapshot = futureSnapshot;
}
get routeConfig(): Route { return this._futureSnapshot.routeConfig; }
get root(): ActivatedRoute { return this._routerState.root; }
get parent(): ActivatedRoute { return this._routerState.parent(this); }
get firstChild(): ActivatedRoute { return this._routerState.firstChild(this); }
get children(): ActivatedRoute[] { return this._routerState.children(this); }
get pathFromRoot(): ActivatedRoute[] { return this._routerState.pathFromRoot(this); }
export class ActivatedRouteSnapshot {
_routeConfig: Route;
_urlSegment: UrlSegmentGroup;
_lastPathIndex: number;
_resolve: InheritedResolve;
_routerState: RouterStateSnapshot;
constructor(
public url: UrlSegment[], public params: Params, public queryParams: Params,
public fragment: string, public data: Data, public outlet: string,
public component: Type<any>|string, routeConfig: Route, urlSegment: UrlSegmentGroup,
lastPathIndex: number, resolve: InheritedResolve) {
this._routeConfig = routeConfig;
this._urlSegment = urlSegment;
this._lastPathIndex = lastPathIndex;
this._resolve = resolve;
}
get routeConfig(): Route { return this._routeConfig; }
get root(): ActivatedRouteSnapshot { return this._routerState.root; }
get parent(): ActivatedRouteSnapshot { return this._routerState.parent(this); }
get firstChild(): ActivatedRouteSnapshot { return this._routerState.firstChild(this); }
get children(): ActivatedRouteSnapshot[] { return this._routerState.children(this); }
get pathFromRoot(): ActivatedRouteSnapshot[] { return this._routerState.pathFromRoot(this); }
}
export class RouterStateSnapshot extends Tree<ActivatedRouteSnapshot> {
constructor(public url: string, root: TreeNode<ActivatedRouteSnapshot>) {
super(root);
setRouterStateSnapshot<RouterStateSnapshot, ActivatedRouteSnapshot>(this, root);
}
}