我正在使用带有TypeScript和zone.js(0.8.4)的Angular(我认为是4版本)。我通过“polyfills.ts”文件导入zone.js。当我查看zone.js的源代码时,发现代码如下:
var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;
我的问题是,我如何在_globals中设置这个变量?
谢谢。
我正在使用带有TypeScript和zone.js(0.8.4)的Angular(我认为是4版本)。我通过“polyfills.ts”文件导入zone.js。当我查看zone.js的源代码时,发现代码如下:
var isDisableIECheck = _global['__Zone_disable_IE_check'] || false;
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;
但需要在 zone.js
加载之前完成。如果你在 index.html
中加载了 zone.js
,请添加以下内容:
<script>
window['__Zone_disable_IE_check'] = true;
</script>
<script src="node_modules/zone.js/dist/zone.js"></script>
index.html
中。将其放置在 polyfills.ts
中不起作用,因为所有导入都在 polyfills.ts
之前执行。 - Max Koretskyi(window as any).__Zone_enable_cross_context_check = true;