2017-11-27 6 views
0

내 질문에는 두 가지 측면이 있습니다. 해결할 오류는 사용자 지정 경로 재사용 전략을 사용할 때 앵글 라우터 클래스 RouteReuseStrategy를 재정의하기 위해 구현 도구를 사용할 때 전략이 트리거되지 않고 아래와 같은 예외가 발생합니다.각도 프레임 워크 클래스를 확장 할 때의 오류 RouteReuseStrategy

UMSClient : 32 오류 : 형식 오류 : 개체 프로토 타입은 될 수있는 객체 또는 null : __extends의 평가에서 (http://localhost:8000/app/UMSClient/com/ipc/ums/modules/shared/CustomRouteReuse.service.js:8:13) (http://localhost:8000/app/UMSClient/com/ipc/ums/modules/shared/CustomRouteReuse.service.js:35:17) 에서 setPrototypeOf() 에서 을 정의되지 않은 (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 ; 
} 
을 실행 0

}

나는 이것이 내 편집 및 전략과 관련이 있다고 생각합니다. 나는 gulp와 system j에서 나 전에 개발 된 프레임 워크를 사용한다. 앱을 각도 기반 cli 기반 웹팩에 복사 할 때 문제가 발생하지 않으며 경로 전략이 올바르게 실행됩니다. 내 빌드 설정의

세부 사항 :

  • ("컴파일",() =>를 {

    gulp.task를 컴파일 꿀꺽를 사용하여 할 tsResult = gulp.src ("응용 프로그램/* */*. ts ") .pipe (sourcemaps.init()) . 파이프 (tsc (tsProject)); return tsResult.js .pipe (sourcemaps.write (". ", {sourceRoot : '/ app '})) .pipe (gulp.dest ("build/app")); });

  • 패키지 JSON이며,

    "종속": { "각도/일반 @": "~ 4.3.1", "각도/컴파일러 @"

    : "~ 4.3.1 "

    "각도/핵심 @ : ":"각/형태 @ ~ 4.3.1 "

    " ""~ 4.3.1/HTTP 각도 @ ",

    " "" ~ 4.3.1 ",

    012 "각도/플랫폼 브라우저 @"3,516,

    : "~ 4.3.1"

    "각도/플랫폼 브라우저 동적 @"

    : "~ 4.3.1", 각도 @

    "

    /라우터 ":"~ 4.3.1 "

    "각 @/업그레이드 ":"~ 4.3.1 "

    "@ angular2 소재/탭 ":"^ 2.0.0-alpha.8- 2 ",

    "@ ng-bootstrap/ng-bootstrap ":"^ 1.0.0-alpha.9 ",

    는 "angular2 - 메모리 - 웹 API": "0.0.20"

    "부트 스트랩": "^ 3.3.6"

    "코어 JS": "^ 2.4.1 "

    "NG2 부트 스트랩 ":"^ 1.1.16-11 "

    "NG2-BS3 모달 ":" "

    "^ 0.10.4-NG2 datetime- 피커 ":"^ 0.9.8 "

    "NGX 부트 스트랩 "" ""- 메타 데이터를 반영^2.0.0-beta.8 "

    "^ 0.1.3 "

    "rxjs": "^ 5.2.0",

    ,210

    "systemjs": "^ 0.20.19"

    "TSD": "^ 0.6.5"

    "밑줄": "^ 1.8.3"

    "존. JS ":"^ 0.8.5 "

    }

    "devDependencies을 "{

    "동시에 ":"^ 3.5.1 "

    "델": "^ 3.0.0"

    "단숨에": "^ 3.9.1"

    "- sourcemaps을 꿀꺽": "^ 2.6.1"

    "단숨에 -tslint ""^ 8.1.2 "

    "꿀꺽 - 타이프 라이터를 "" ""^ 3.2.3 "

    "라이트 서버^2.2.2 "

    " tslint ":"~ 5.8.0 ",

    "타이프": "~ 2.6.1"

    "typings"

    : "^ 2.1.1"

    "의 TS-노드": "~ 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" 

] }

내 특정 질문은,이 관련 런타임 의존성이 런타임 예외를 일으키는 지 알지 못합니다. 꿀꺽 꿀꺽 마시는 절차에 대한 지식이있는 분이라면 문제를 해결할 수 있도록 안내해주십시오.

이 예외에 대한 해결책으로 스택 오버플로를 탐색했습니다. 모든 토론은 클래스 계층의 순서로 몇 가지 문제가 있음을 나타내고 제 경우에는 100 %가 webpack angular cli 프로젝트에서 잘 작동하는 각도 프레임 워크 클래스를 사용하고 있습니다.

감사합니다.

답변

0

문제는 내 작업 공간 구조 때문이었습니다. 각도 버전 4.3을 사용하도록 package.json을 업데이트했습니다.0으로 설정하고 npm install을 실행하여 node_modules 폴더로 다운로드하십시오. 그러나 꿀꺽 꿀꺽 거리는 소리가 다른 node_modules 폴더에서 읽는 중이었고 문제가 발생한 각도 2 버전을 읽었습니다. 각도 4 버전으로 실제 node_modules 폴더를 업데이트하면 customRouteReuseStrategy가 작동하기 시작합니다.

감사합니다.