web-dev-qa-db-fra.com

Angular 4 mettre une constante globale disponible pour zone.js

j'utilise Angular (4 je pense) avec TypeScript et zone.js (0.8.4). J'importe zone.js via le fichier "polyfills.ts". Quand je regarde à l'intérieur du code source de zone.js, il y a un code comme celui-ci:

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

Ma question est, comment puis-je définir cette variable dans _globals?

Merci

6
Jojje

global est window objet dans un navigateur, comme on peut le voir ici:

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

afin que vous puissiez définir la variable comme ceci:

window['__Zone_disable_IE_check'] = true;

Mais vous devez faire cela avant que zone.js soit chargé. Si vous chargez zone.js dans index.html, ajoutez ce qui suit:

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

Dans mon cas, j'ai dû décommenter la ligne suivante dans le fichier polyfills:

(window as any).__Zone_enable_cross_context_check = true;

Projet Angular version: Angular 6.0.1

0
Rafael VC