【问题标题】:Patching Element.prototype.addEventListener breaks any Angular 2 app修补 Element.prototype.addEventListener 会破坏任何 Angular 2 应用程序
【发布时间】:2018-07-17 15:41:47
【问题描述】:

我有一个 Angular 2 应用程序https://github.com/DanWahlin/Angular-JumpStart。我尝试为我的一些用例修补 Element.prototype.addEventListener。

这是补丁:

var origLis = Element.prototype.addEventListener;
Element.prototype.addEventListener = function(type, handler, useCapture) {
    console.log("Added");
    return origLis.apply(this, arguments);
}

如果我修补 Element.prototype.addEventListener,它会破坏 Angular 2 应用程序。应用程序中未发送任何资源/XHR。我在许多 Angular 2 应用程序上都试过这个。但是,同样的结果。控制台没有错误

有人知道为什么会这样吗?有解决办法吗?

PS:我不想修补 EventTarget.prototype.addEventListener,如此处所述

Angular 2 application breaks when HTMLElement.prototype.addEventListener is modified

【问题讨论】:

    标签: javascript angularjs monkeypatching zonejs


    【解决方案1】:

    如果你尝试猴子补丁 addEventListener,不要在 Element.prototype 上做,你可以在 EventTarget.prototype 上做。在 Angular 中,zone.js 猴子补丁 EventTarget.prototype.addEventListener 以使更改检测工作,因此如果您修改 Element.prototype 这将破坏 angular 默认行为。

    【讨论】:

      猜你喜欢
      • 2014-02-18
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多