我们正在使用 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 功能。任何帮助将不胜感激。