Angularバージョンフォーム4.xを5.xに更新すると、エラーが表示されます。
core.js:1449エラーエラー:キャッチされていません(約束されています):TypeError:未定義は関数ではありません TypeError:未定義は関数ではありません Array.mapで()。 webpackAsyncContextで(./src/$$_lazy_route_resourceでの評価怠惰な再帰(main.bundle.js:formatted:17)、 :657:34) SystemJsNgModuleLoader.loadAndCompile(core.js:6570)で SystemJsNgModuleLoader.load(core.js:6554)で RouterConfigLoader.loadModuleFactory(router.js:4595)で RouterConfigLoader.load(router.js:4575)で MergeMapSubscriber.eval [プロジェクトとして](router.js:2061) MergeMapSubscriber._tryNext(mergeMap.js:128)で MergeMapSubscriber._next(mergeMap.js:118)で MergeMapSubscriber.Subscriber.next(Subscriber.js:95)で Array.mapで( )。 webpackAsyncContextで(./src/$$_lazy_route_resourceでの評価怠惰な再帰(main.bundle.js:formatted:17)、 :657:34) SystemJsNgModuleLoader.loadAndCompile(core.js:6570)で SystemJsNgModuleLoader.load(core.js:6554)で RouterConfigLoader.loadModuleFactory(router.js:4595)で RouterConfigLoader.load(router.js:4575)で MergeMapSubscriber.eval [プロジェクトとして](router.js:2061) MergeMapSubscriber._tryNext(mergeMap.js:128)で MergeMapSubscriber._next(mergeMap.js:118)で MergeMapSubscriber.Subscriber.next(Subscriber.js:95)で resolvePromise(zone.js:814)で resolvePromise(zone.js:771)で evalで(zone.js:873) ZoneDelegate.invokeTask(zone.js:421)で Object.onInvokeTask(core.js:4751)で ZoneDelegate.invokeTask(zone.js:420)で Zone.runTask(zone.js:188)で drainMicroTaskQueue(zone.js:595)で で
私のコード:
'@ angle / core'から{ModuleWithProviders}をインポートします; import {Routes、RouterModule} from '@ angle / router'; './rbac/rbac.service'から{RbacService}をインポートします。 constルート:ルート= [ {{ 道: ''、 redirectTo: '/ page / index / main'、 pathMatch: 'フル' }、 {{ パス: 'ページ'、 コンポーネント:MitLayoutComponent、 canActivate:[RbacService]、 子供達: [ {パス: 'インデックス'、 loadChildren: 'app / modules / index / index.module#IndexModule'、 canActivate:[RbacService]}、 ]; export const AppRoutes:ModuleWithProviders = RouterModule.forRoot(routes、{useHash:true});
Angular CLI:1.7.4 ノード:8.9.4 OS:win32 x64 角度:5.2.10 ...アニメーション、共通、コンパイラ、コンパイラ-CLI、コア、フォーム ... http、platform-browser、platform-browser-dynamic、router @ angle / cli:1.7.4 @ angle-devkit / build-optimizer:0.3.2 @ angle-devkit / core:0.4.9 @ angle-devkit / schematics:0.3.2 @ ngtools / json-schema:1.2.0 @ ngtools / webpack:1.10.2 @ schematics / angle:0.3.2 @ schematics / package-update:0.3.2 タイプスクリプト:2.4.2 webpack:3.11.0
角度/角度の重複-cli#9825
ngserve--aotの問題を修正しました
私と同じようにGoogle経由でこの問題を見つけた他の人のために:モジュールを遅延ロードしようとしたときに同じ問題が発生しましたが、他の回答は役に立ちませんでした。 遅延読み込みモジュールを誤ってapp-moduleにインポートしたことに気付きました。
NgModule({
....
imports: [
.....
MyCustomModule, //<--- This needs to be removed if you lazy load!
AppRoutingModule,
],
bootstrap: [AppComponent],
})
それが誰かを助けることを願っています...
@ThomasEgどうもありがとう、これは本当に私のベーコンを救った! ドキュメントはこれについて「注意を向ける」必要があり、これについて非常に明確にする必要があるようです。 男...とても多くの時間を過ごしました。
@ThomasEgソリューションは私にとって完璧に機能しました、ありがとう!
@ThomasEgあなたはすぐに私のさらに3-4時間を節約しました。 ありがとう。
@ThomasEg完璧なソリューション。 どうもありがとう!
thnxs ..私はこれで問題を抱えていました
ありがとう
通常、遅延ロードされたAngularモジュールが生成されたときにAppModule
のimports
オプションに追加されたのはAngularCLIです。
こんにちは私は遅延読み込みの問題を解決しました、そしてそれはエラーなしでうまく動作するように見えます
遅延ロードされた子ごとに、canLoad returntrueを使用してダミーガードを追加します
{パス: 'pet-insurance'、canLoad:[PetGuard]、loadChildren: './_ modules / Insurance / Pet-Insurance / pet-insurance.module#PetInsuranceModule'}、
import {Injectable} from '@ angle / core';
import {Router、CanLoad、Route} from '@ angle / router';
@Injectable({
提供: 'ルート'
})
エクスポートクラスPetGuardはCanLoadを実装します{
constructor(private router: Router) { }
// checks if we can load the route concerning LifeInsurance
canLoad(route: Route): boolean {
return this.petInsurance(route.path);
}
petInsurance(url: string): boolean {
return true;
}
}
ゴードンカミングから
[email protected]
私と同じようにGoogle経由でこの問題を見つけた他の人のために:モジュールを遅延ロードしようとしたときに同じ問題が発生しましたが、他の回答は役に立ちませんでした。 遅延読み込みモジュールを誤ってapp-moduleにインポートしたことに気付きました。
NgModule({ .... imports: [ ..... MyCustomModule, //<--- This needs to be removed if you lazy load! AppRoutingModule, ], bootstrap: [AppComponent], })
それが誰かを助けることを願っています...
ありがとう! これは、ルートだけでなく子モジュールにも適用されることに注意してください。 経験則では、モジュールのロードを遅らせる場合は、どのモジュールにも含めないでください。 親モジュールに子モジュールを追加することに慣れている場合、または過去に遅延読み込みモジュールを使用したことがない場合、これを破るのは難しい習慣になる可能性があります。
@ThomasEgありがとうございます!!!
私の場合、ngserve--aotでも動作します。 次の説明は、-aotフラグを使用しないことについてです。
遅延読み込みされたモジュールがアプリモジュールにインポートされていないことを確認するためにクロスチェックしました。 私が気付いたのは、遅延読み込みモジュールで宣言されたパスを直接使用すると(アプリルーティングモジュールで宣言されたコンテキストなしで)ページが読み込まれることです。 エラーは、フルパスを入力しようとしたときにのみ発生します。もちろん、それは私が必要としていることではありません。
@ThomasEg素晴らしい! ありがとう
@ThomasEg動作します。 ありがとう!!!
@ThomasEgどうもありがとう、あなたは私の日を救った。
'app-fixed-topbar'がWebコンポーネントの場合、このメッセージを抑制するために、このコンポーネントの '@ NgModule.schemas'に 'CUSTOM_ELEMENTS_SCHEMA'を追加します。
モジュールにCUSTOM_ELEMENTS_SCHEMAを含めると仮定します。エラーは解決されましたが、
app-fixed-topbar私のページに表示されません
この問題は、非アクティブのために自動的にロックされています。
同様の問題または関連する問題が発生した場合は、新しい問題を提出してください。
自動会話ロックポリシーの詳細をご覧ください。
_このアクションはボットによって自動的に実行されました。_
最も参考になるコメント
私と同じようにGoogle経由でこの問題を見つけた他の人のために:モジュールを遅延ロードしようとしたときに同じ問題が発生しましたが、他の回答は役に立ちませんでした。 遅延読み込みモジュールを誤ってapp-moduleにインポートしたことに気付きました。
それが誰かを助けることを願っています...