首页 > 解决方案 > 为什么打字稿超级关键字会生成无限循环?为什么 super.method == this.method?

问题描述

我正在尝试ngOnInit从基类调用。

ngOnInit() {
    super.ngOnInit();
}

如果我使用的是 Chrome 浏览器,一切都运行良好,但如果我使用 angular 应用程序,就像Microsoft WordOffice Add-in一样,我有无限循环。

在下面,使用或浏览器Office Add-in呈现Angular应用程序。IEEdge

我认为浏览器与 混淆superthis因此我们有递归,这就是无限循环的原因。

一种解决方案可能是将基本 ngOnInit 块代码放在另一个函数“myFunc”中,并且可以从派生类中使用

ngOnInit() {
    super.myFunc();
}

我很好奇是否有另一种解决方案。

标签: javascriptangulartypescript

解决方案


您可以尝试检查:

if(super.ngOnInit!==this.ngOnInit)
  super.ngOnInit();

至少这样,如果它开始引用自己,那么你可以避免无限循环。让我们知道怎么回事。


推荐阅读