0

我们正在使用 Angular 2 为本地 SharePoint 2013 开发 Web 部件,并且遇到了“堆栈空间不足”问题。

在花费时间检查、仔细检查、添加和删除互联网建议的每个 polyfill 排列之后,我们没有答案。考虑这可能与我们的应用程序有关,我们使用了最新版本的angular2-seed,重新设计了 Web 部件以加载捆绑的输出,但仍然出现错误。

应用程序工作。它们在 IE 9>11 和 Edge 中工作,这不是问题。但确实发生的是它们破坏了 SharePoint 功能区的某些部分。最值得注意的是站点设置菜单。当您尝试选择菜单项时,会触发悬停事件,这就是我们看到“堆栈空间不足”错误的地方。发生错误后,由于 JavaScript 无法再次运行,因此功能区的进一步使用受到限制。

该错误是从我们的应用程序和 angular2-seed 应用程序中的 zone.js 引发的,尝试运行:

try {
    return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);
}
catch (error) {
   if (this._zoneDelegate.handleError(this, error)) {
       throw error;
}

然而,这不是来自我们的代码。正如我上面提到的,它来自 SharePoint JavaScript。似乎 polyfill 和/或 zone.js 中的某些内容覆盖了 SharePoint 需要的内容。

在过去的几年里,我们一直在使用 AngularJS (ng1) 并且没有遇到任何问题,但是我们正在创建我们的第一个 Angular (ng2) 应用程序,并且我们已经摆脱了 IE/Edge 的困扰。

各种 Angular 项目中的一些其他帖子和错误报告提出了 polyfill 和其他模块的不同组合,但相信我,我们已经尝试过了。问题不在于我们的应用程序,而在于 SharePoint 功能。任何帮助将不胜感激。

4

1 回答 1

0

好的,似乎是 zone.js 的问题。github.com/angular/zone.js/issues/618 这就是问题所在。我已经尝试过修复,它大部分都有效。现在有一些新东西,但至少我找到了合适的地方。在发布这篇文章时,zone.js/npm 尚未更新,但我认为这应该在几天内完成。

于 2017-03-09T02:53:31.390 回答