2017-08-02 12 views
0

私は条件付きでtrueまたはfalseにuseHashの値を設定します。私はエクスポートされた関数を作成し、ブラウザは、その後useHash = true、そうでない場合はfalse IE 9の場合は条件がある。この使用angular2プロパティusehashは条件付きで

@NgModule({ 
     imports: [ RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules, 
               useHash: AppHashingStrategy() })], 
     exports: [ RouterModule ], 
    }) 

export function AppHashingStrategy() { 
    const result = window.navigator.userAgent.indexOf('MSIE') !== -1 && 
        window.navigator.userAgent.indexOf('9.0') !== -1; 
    return result; 
} 

のようなアプリルーティングモジュールでそれを呼びました。これは、私のangular2アプリがIE9で動作していないためです(読み込み中...とハングする)。しかし、useHashの値をfalseに変更すると、うまく動作します。条件付きで値を設定する必要があります。

しかし、私はこれを行うとき、私はエラーを取得する:機能の呼び出し

「AppHashingStrategy」、機能は がサポートされていません呼び出します。どのようにこの問題を解決するためにエクスポートされた関数

を参照して、関数またはラムダの交換を検討?

答えて

0

Calling function 'AppHashingStrategy', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function

ラムダ式がIE9で動作しないため、上記のエラーが発生することがわかりました。 私はIE11でラムダ式を使っていますが、うまくいきます。

+0

こんにちはSandip - それも、それは簡単な関数呼び出しのラムダ式ではありません。どのようにIE9のために働かせましたか? – Angad

+0

私はあなたのエラーごとに答えを与えました。インスタンスごとに最初のチェックウィンドウ、次にナビゲータ、次にuserAgentなどのように動作しないオブジェクトを確認してみてください。あなたはそれに相当する他のプロパティを見つけるかもしれません。 –

+0

申し訳ありませんどのような答えですか?私は私はそれがそう呼ばれることができ、他の方法があります...それはIE9で動作するようにしたい...問題はNavigatorまたはウィンドウやuserAgentにされていません...問題は、私は輸入の関数を呼び出すことができないということです条件を最初にチェックし、真/偽を返すことができます。 – Angad

関連する問題