我的问题有两个方面。要解决的错误是,当我使用自定义路由重用策略时,当我使用工具覆盖角路由器类RouteReuseStrategy时,该策略不会被触发,当我使用extends关键字时,我得到以下异常,
UMSClient:32 Error: TypeError: Object prototype可能只是一个对象,或者null: undefined at setPrototypeOf () at __extends (http://localhost:8000/app/UMSClient/com/ipc/ums/modules/shared/CustomRouteReuse.service.js:8:13) at eval (http://localhost:8000/app/UMSClient/com/ipc/ums/modules/shared/CustomRouteReuse.service.js:35:17) at execute (http://localhost:8000/app/UMSClient/com/ipc/ums/modules/shared/CustomRouteReuse.service.js:54:14)错误加载http://localhost:8000/app/main.js
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 ;
}}
我有一种感觉,这与我的编译和构建策略有关。我使用了一个在我之前开发的框架,它是在gulp和system中开发的。当我复制应用程序到webpack的角度cli,没有问题和路由策略被正确触发。
构建设置的详细信息:
tsconfig.json:
{
"compilerOptions": {
"outDir": "build/app",
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"gulpfile.ts",
"node_modules"]}
我的具体问题是,我不知道是什么相关的依赖导致了这个运行时异常。谁知道吞咽的建立程序,请指导我,以解决问题。
我浏览了堆栈溢出,以解决此异常。每一次讨论都表明,在类层次的顺序上存在一些问题,在我的例子中,我使用的是在webpack角cli项目中100%工作良好的角框架类。
耽误您时间,实在对不起。
发布于 2017-12-19 20:58:04
问题在于我的工作区结构。我更新了package.json以使用RangVersion4.3.0,并运行npm将其下载到node_modules文件夹中。但是gulp是从另一个node_modules文件夹读取的,它读取的是角2版本,导致了这个问题。当我用角4版本更新实际的node_modules文件夹时,customRouteReuseStrategy就开始工作了。
谢谢,
https://stackoverflow.com/questions/47517749
复制相似问题