等效于Angular的Javascript getElementById和addEventListener

时间:2020-08-09 16:47:20

标签: javascript angular addeventlistener getelementbyid

我需要重写/适应JS方法,以便可以将 JS脚本运行到新的Angular应用中。

  boot: function() {
    var that = this;

    that.container = document.getElementById('embedded_messenger');
    that.chatClient = document.getElementById('chat_client').contentWindow;

    window.addEventListener('message', that.receiveMessage, false);

    return this;
  }

通常,将脚本加载到HTML页面后立即调用此启动方法。

<body>
  ...
  <script src="embed.js"></script>
  <script>
      var options = {};
      Chat.boot();
  </script>
</body>
  1. 在Angular应用程序中,我应该在ngOnInit()内调用启动函数来获得与以前使用HTML文档相同的行为吗?

  2. var that = this的解释是here,但是我的问题是关于return this;的:返回了that吗? thatthis的克隆(或引用)吗?

  3. that.container = document.getElementById('embedded_messenger');在Angular编译期间生成错误: 属性“容器”不存在

使用@ViewChild('embedded_messenger')代替getElementById('embedded_messenger')是一种好习惯还是使用Angular elements更好?

  1. 关于addEventListener的相同问题:我应该使用Angular EventManager替换它吗?

非常感谢您的建议。

0 个答案:

没有答案
相关问题