Angular 4:使用自定义RouteReuseStrategy导致无法读取未定义

时间:2017-11-16 16:30:19

标签: angular-ui-router

自定义路由重用策略如下,

import { RouteReuseStrategy,ActivatedRouteSnapshot,DetachedRouteHandler} from '@angular/router';

export class CustomRouteReuseStrategy extends RouteReuseStrategy {
shouldDetach(route: ActivatedRouteSnapshot): boolean { return false; }

    store(route: ActivatedRouteSnapshot, detachedTree: DetachedRouteHandle): void {}

    shouldAttach(route: ActivatedRouteSnapshot): boolean { return false; }

    retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle { return null ; }

    shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {
        console.log("inside shouldReuseRoute...");
      return future.routeConfig === curr.routeConfig ;
    }

  }

我得到以下错误

  

错误:TypeError:无法读取undefined的属性'prototype'           在__extends(http://localhost:8000/app/UMSClient/com/ipc/ums/modules/shared/CustomRouteReuse.service.js:7:73

我通读了堆栈溢出帖子,无法找到解决方案。一旦这个工作,我想确保我的一个子组件被重新加载而不是重用,然后在项目中附加组件。

我在AppModule中提供<​​/ p>

{
    provide: RouteReuseStrategy,
    useClass: CustomRouteReuseStrategy
},

我将扩展更改为实现,但错误消失但自定义路由重用不起作用。

我正在使用棱角分明4.3.1

1 个答案:

答案 0 :(得分:0)

问题是我的工作区结构。当角度为4时,Angular 2版本被错误地拾取。当我纠正这个问题时,它开始正常工作。