【发布时间】:2021-08-09 18:04:02
【问题描述】:
我在静态 html 页面中使用 Angular Web 组件。我能够将数据注入 Angular 组件。但是当我尝试从 Angular 组件检索数据到 HTML 页面时,它不起作用。我不确定我在这里做错了什么。
代码如下:
组件 ts 代码
@Output() myOutput:EventEmitter<string>= new EventEmitter();
outputMessage:string="I am child component."
sendValues() {
this.myOutput.emit(this.outputMessage);
}
组件 html 代码
<button (click)="sendValues"> Send Data </button>
静态 html 中的 JS 代码
var commCompTag = document.getElementsByTagName('comm-comp');
if(commCompTag.length > 0){
console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>');
commCompTag[0].addEventListener('myoutput', (event) => {
var evtDetails = event;
console.log('evtDetails >>> ', evtDetails);
console.log(event.detail);
});
// commCompTag[0].addEventListener('myoutput', function(event) {
// var evtDetails1 = event;
// console.log('evtDetails1 >>> ', evtDetails1);
// console.log(event.originalEvent.detail);
// });
}
我已经通过参考Angular Elements EventEmmitter : $event not showing emitted value 尝试了上述解决方案,但它并没有帮助我。所以如果有人能给我一些解决这个问题的建议,那就太好了。
【问题讨论】:
-
输入一些内容作为输出的名称,即
@Output("myOutput") ...,或者使用字符串'myOutput'作为事件的名称,而不是全部小写的值。据我所知,事件名称不应该区分大小写,但在 Web 组件的美好新世界中,我不确定 :)。
标签: javascript angular web-component