web-dev-qa-db-ja.com

Angular 4zone.jsで使用可能なグローバル定数を配置します

typeScriptとzone.js(0.8.4)でAngular(4だと思います)を使用しています。 "polyfills.ts"ファイルを介してzone.jsをインポートします。ソースの内部を見るとzone.jsのコード、次のようなコードがあります:

var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;

私の質問は、どうすればこの変数を_globalsに設定できますか?

ありがとう

7
Jojje

globalは、次のようにブラウザのwindowオブジェクトです。

(function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? factory() :
    typeof define === 'function' && define.AMD ? define(factory) :
    (factory());
}(this,    <------------ `this` points to `window` in global scope
 (function () { 
   ...
});

したがって、次のように変数を設定できます。

window['__Zone_disable_IE_check'] = true;

ただし、これを行う必要がありますbeforezone.jsがロードされます。 zone.jsindex.htmlにロードする場合は、以下を追加します。

<script>
    window['__Zone_disable_IE_check'] = true;
</script>
<script src="node_modules/zone.js/dist/zone.js"></script>
10
Maxim Koretskyi

私の場合、polyfillsファイルの次の行のコメントを解除する必要がありました。

(window as any).__Zone_enable_cross_context_check = true;

プロジェクトAngularバージョン:Angular 6.0.1

1
Rafael VC