角2では、IE9のみハッシュ戦略を使用したいと考えています。そのために、IE9ブラウザを検出した場合にのみ、ルータがハッシュ戦略を使用するように設定します。角2 AOT「式がサポートされていません」エラー
TSCでコンパイルするとき、これは働いていた:NGCコンパイラ(AOTコンパイルが)それを受け入れていないしかし
const useHash: boolean = (typeof window.history.pushState) !== 'function';
@NgModule({
declarations: [AppComponent],
imports: [
RouterModule.forRoot(appRoutes, {initialNavigation : false, useHash : useHash})
]
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
。 ngc(const宣言行)で次のエラーがスローされます。
シンボル値を静的に解決する際にエラーが発生しました。
@NgModule({ declarations: [AppComponent], imports: [ RouterModule.forRoot(appRoutes, {initialNavigation : false, useHash : AppModule.useHash}) ], providers: [], bootstrap: [AppComponent] }) export class AppModule { static useHash: boolean = (typeof window.history.pushState) !== 'function'; }
しかし、私は(今回プロバイダライン上)と同じエラーを取得:表現形式が
をサポートしていない私はまた、(:https://medium.com/@isaacplmann/making-your-angular-2-library-statically-analyzable-for-aot-e1c6f3ebedd5#.h4pnszi13この記事に基づいて)試してみました。私がstatic useHash: boolean = false;
を実行すると動作することに注意してください。
モジュール宣言の問題をどのように解決できますか?
が提案しかし、誰それをありがとう動作しません。私は 'Argument of type 'を得る{initialNavigation:false; useHash:()=> boolean; } 'は' ExtraOptions 'タイプのパラメータに割り当てられません。 プロパティ 'useHash'のタイプは互換性がありません。 'useHash:useHash()'を試してみると、元のエラーが出ます。 – j3r6me