简体   繁体   English

将Handsontable添加到Angular-CLI脚本时,ZoneAwarePromise被覆盖

[英]ZoneAwarePromise overwritten when adding Handsontable to Angular-CLI scripts

I'd like to add the Handsontable library to my Angular project. 我想将Handsontable库添加到我的Angular项目中。 Using , I added Handsontable to the scripts section of .angular-cli.json : 使用 ,我将Handsontable添加到.angular-cli.json的脚本部分:

"scripts": [
  "../node_modules/handsontable-pro/dist/handsontable.full.js"
]

Webpack compiles successfully, however when loading the web application, I'm encountering the following error: Webpack编译成功,但是在加载Web应用程序时,遇到以下错误:

VM473:34309 Unhandled promise rejection Error: Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.
Most likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)
    at Function.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.assertZonePatched (zone.js:44)
    at new NgZone (core.es5.js:3757)
    at PlatformRef_.webpackJsonp.../../../core/@angular/core.es5.js.PlatformRef_._bootstrapModuleFactoryWithZone (core.es5.js:4551)
    at core.es5.js:4596
    at run (eval at webpackJsonp.../../../../script-loader/addScript.js.module.exports (addScript.js:9), <anonymous>:34279:22)
    at eval (eval at webpackJsonp.../../../../script-loader/addScript.js.module.exports (addScript.js:9), <anonymous>:34292:28)
    at MutationObserver.flush (eval at webpackJsonp.../../../../script-loader/addScript.js.module.exports (addScript.js:9), <anonymous>:91358:9)
    at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:391)
    at Zone.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runGuarded (zone.js:154)
    at MutationObserver.<anonymous> (zone.js:132)

Apparently, (imported in polyfills.ts by default) is loaded before Handsontable (actually the polyfills bundle is loaded first ). 显然, (进口在polyfills.ts默认情况下)之前Handsontable加载(实际上是polyfills束被加载第一 )。 I found a possible workaround by copying the JS file to my asset folder and moving the Handsontable import to the index.html : 通过将JS文件复制到我的资产文件夹并将Handsontable导入移动到index.html我找到了一种可能的解决方法:

<html>
  <head>
    <script src="assets/handsontable.full.js"></script>
  </head>
// ...

However, this does feel like a hack, as there is a scripts section in .angular-cli.json for the purpose of using it. 但是,这的确感觉很像黑客,因为.angular-cli.json有一个脚本节用于使用它。

Any idea on how to fix this issue is highly appreciated. 高度赞赏有关解决此问题的任何想法。

我遇到了同样的问题,我已经将“ import'zone.js / dist / zone'”从“ polyfill.ts”移至“ main.ts”

请更新到最新版本的zone.js ,错误将消失。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM