我的问题有两个方面。要解决的错误是,当我使用自定义路由重复使用策略时,当我使用工具来覆盖Angular Router类RouteUsestrategy时,策略不会被触发,而当我使用Extend sending sending tements关键字时,我会得到以下异常,
umsclient:32错误:typeError:对象原型只能是对象或null:未定义 在setPrototypeof() 在___extends(http://localhost:8000/app/umsclient/com/ipc/ipc/ums/modules/shared/customRoutereuse.service.js:8:13) 在评估(http://localhost:8000/app/umsclient/com/ipc/ums/ums/imules/shared/customRoutereuse.service.js:35:17) 在Execute(http://localhost:8000/app/umsclient/com/ipc/ums/ums/模块/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 JS面前开发的框架。当我将应用程序复制到基于WebPack的Angular CLI时,没有问题,路由策略会正确触发。
我的构建设置的详细信息:
使用Gulp编译
gulp.task(" compile",()=> { 令tsresult = Gulp.src(" app/**/*。ts") .pipe(sourcemaps.init()) .pipe(tsc(tsproject)); 返回tsresult.js 。 .pipe(gulp.dest(" build/app")); });
包json是
"依赖项":{"@angular/common":" 〜4.3.1",
"@angular/编译器":" 〜4.3.1",
"@angular/core":" 〜4.3.1",
"@angular/forms":" 〜4.3.1",
"@angular/http":" 〜4.3.1",
"@angular/platform-browser":" 〜4.3.1",
"@angular/platform-browser-dynamic":" 〜4.3.1",
"@angular/Router":" 〜4.3.1",
"@angular/升级":" 〜4.3.1",
"@gangular2-Material/tabs":"^2.0.0-alpha.8-2",
"@ng-bootstrap/ng-bootstrap":"^1.0.0-alpha.9",
" angular2 in-memory-web-api":" 0.0.20",
" bootstrap":"^3.3.6",
" core-js":"^2.4.1",
" ng2-bootstrap":"^1.1.16-11",
" ng2-bs3-modal":"^0.10.4",
" ng2-datetime-picker":"^0.9.8",
" ngx-bootstrap":"^2.0.0-beta.8",
" Reffle-metadata":"^0.1.3",
" rxjs":"^5.2.0",
" systemjs":"^0.20.19",
" tsd":"^0.6.5",
"下划线":"^1.8.3",
" Zone.js":"^0.8.5"
},
" devDepentencies":{
"同时":"^3.5.1",
" del":"^3.0.0",
" gulp":"^3.9.1",
" gulp-sourcemaps":"^2.6.1",
" gulp-tslint":"^8.1.2",
" gulp-typescript":"^3.2.3",
" lite-server":"^2.2.2",
" tslint":" 〜5.8.0",
"打字稿":" 〜2.6.1",
"键入":"^2.1.1",
" ts-node":" 〜3.3.0"
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"
]}
我的具体问题是,我不知道是什么相关的依赖性导致此运行时间异常。有知识湾构建程序的人,请指导我解决问题。
i浏览了堆栈溢出,以解决该异常。每次讨论都表明类层次结构的顺序存在一些问题,就我而言,我正在使用Angular Framework类,该类别在WebPack Angular CLI项目中正常工作。
感谢您的时间。
问题是我的工作区结构。我更新了包装。JSON使用Angular版本4.3.0,然后ran npm安装将其下载到node_modules文件夹。但是Gulp Build是从另一个node_modules文件夹中读取的,它正在读取引起问题的Angular 2版本。当我使用Angular 4版本更新实际的Node_modules文件夹时,CustomRoutereusestrategy开始工作。
谢谢,