Jojje
Jojje

Reputation: 1779

Angular 4 put a global constant available to zone.js

i am using Angular (4 i think) with typescript and zone.js (0.8.4). I import zone.js via the "polyfills.ts" file. When I look inside the source code of zone.js, there is code like this:

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

My question is, how can I set this variable in _globals ?

Thanks

Upvotes: 7

Views: 8476

Answers (2)

Rafael VC
Rafael VC

Reputation: 446

In my case, I have had to uncomment the following line in the polyfills file:

(window as any).__Zone_enable_cross_context_check = true;

Project Angular version: Angular 6.0.1

Upvotes: 1

Max Koretskyi
Max Koretskyi

Reputation: 105537

global is window object in a browser as can be seen here:

(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 () { 
   ...
});

so you can set the variable like this:

window['__Zone_disable_IE_check'] = true;

But you need to do that before zone.js is loaded. If you load zone.js in index.html, add the following:

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

Upvotes: 11

Related Questions