2017-11-27 4 views
0

私の質問には2つの側面があります。解決するためのエラーは、カスタムルート再利用戦略を使用すると、実装を使用して角度ルータクラスRouteReuseStrategyをオーバーライドするときに戦略がトリガされず、キーワードを使用すると以下の例外が発生します。角度フレームワーククラスを拡張するときのエラーRouteReuseStrategy

UMSClient: TypeError例外:プロトタイプが唯一のオブジェクトまたはnullであってもよいオブジェクト:評価で__extendsでsetPrototypeOfで不定 () (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) で(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 jsで私の前で開発されたフレームワークを使用します。アプリをwebpackベースの角度cliにコピーすると、問題が発生せず、ルート戦略が適切にトリガーされます。私のビルド設定の

詳細:

gulp.task( "コンパイル"、()=> { せtsResult = gulp.src( "アプリ/ *をコンパイルするがぶ飲みを使用して

  • */*。ts ") .pipe(sourcemaps.init()) .pipe(tsc(tsProject)); return tsResult.js .pipe(sourcemaps.write("。 "、{sourceRoot: '/ app '})) .pipe(gulp.dest( "build/app")); }); { "角度/共通@": "〜4.3.1"、

    "角度/コンパイラ@":「〜4.3.1

  • パッケージJSONは、

    "依存関係" であります"

    "角度/コア@": "〜4.3.1"、

    "角度/フォーム@": "〜4.3.1"、

    "角度/ HTTP @":" 〜4.3.1 "、

    012角度/ルータ@ "〜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"、

    "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"、

    "飲み込む-typescriptですが: ": "" "^ 3.2.3"、

    " LITE-サーバー^ 2.2.2"、

    " 「tslint」:「〜5.8.0」、

    "typescriptです": "〜2.6.1"、

    "タイピング": "^ 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

問題は私のワークスペース構造にありました。私は、angleバージョン4.3を使用するようにpackage.jsonを更新しました。0を実行し、npm installを実行してnode_modulesフォルダにダウンロードします。しかし、gulpのビルドは別のnode_modulesフォルダから読み取っていて、問題を引き起こしている角度2のバージョンを読み込んでいました。実際のnode_modulesフォルダをangle 4のバージョンで更新すると、customRouteReuseStrategyが動作するようになりました。

ありがとう、

関連する問題