自用零散博文-route_state.ts

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);
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值