Angular 4 put a global constant available to zone.js

前端 未结 2 1299
长情又很酷
长情又很酷 2021-02-06 08:48

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

相关标签:
2条回答
  • 2021-02-06 09:03

    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>
    
    0 讨论(0)
  • 2021-02-06 09:09

    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

    0 讨论(0)
提交回复
热议问题