我需要重写/适应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>
在Angular应用程序中,我应该在ngOnInit()
内调用启动函数来获得与以前使用HTML文档相同的行为吗?
var that = this
的解释是here,但是我的问题是关于return this;
的:返回了that
吗? that
是this
的克隆(或引用)吗?
that.container = document.getElementById('embedded_messenger');
在Angular编译期间生成错误:
属性“容器”不存在
使用@ViewChild('embedded_messenger')
代替getElementById('embedded_messenger')
是一种好习惯还是使用Angular elements更好?
addEventListener
的相同问题:我应该使用Angular EventManager替换它吗?非常感谢您的建议。