问题
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
回答1:
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>
回答2:
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
来源:https://stackoverflow.com/questions/45691804/angular-4-put-a-global-constant-available-to-zone-js