Angular 元素事件发射器 : $event not showing emitted value

标签 angular angular-elements

我在使用自定义 Angular 元素时被卡住了,每当我发出一个值时,即 truefalse ,在使用 element 时效果很好在同一个 Angular 项目中,每当我通过创建捆绑的 JS 来使用其他项目中的元素时文件。它显示 Inputs events在父组件中。

这是我在父组件中的 Angular 元素

<app-address [model]="address"  [isAddressValid]="isValid" 
(getValidity)="getValue($event)" placeholder="placeholder" label="label" isRequired="false" ></app-address>

在父组件中,我正在访问像
getValue(data) {
   console.log(data)
}

而不是显示发出的数据,即 truefalse它给我看inputs事件。

这就是我导入文件的方式
import '../../../Elements/angular-address-element/elements/app-address-element'

子组件
@Output() getValidity = new EventEmitter<any>();
this.getValidity.emit(true)

我调用 emitchange事件。

最佳答案

Angular 元素将输出作为自定义事件调度 document.createEvent('CustomEvent') .这意味着您将始终获得正确的事件对象,而不是原始对象。

Component outputs are dispatched as HTML Custom Events, with the name of the custom event matching the output name. For example, for a component with @Output() valueChanged = new EventEmitter(), the corresponding custom element will dispatch events with the name "valueChanged", and the emitted data will be stored on the event’s detail property. If you provide an alias, that value is used; for example, @Output('myClick') clicks = new EventEmitter(); results in dispatch events with the name "myClick".



所以你的代码应该是这样的:<some-element (someEvent)="eventHandler($event.detail)> </some-element>"
看:

https://blog.angularindepth.com/how-angular-elements-uses-custom-events-mechanism-to-transmit-components-outputs-outside-angular-7b469386f6e2

https://angular.io/guide/elements#mapping

关于 Angular 元素事件发射器 : $event not showing emitted value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57215011/

相关文章:

angular - 以 Angular 上传文件的补丁值

javascript - 影子dom内的脚本不起作用

angular - 在 webcomponent 中重置 Angular 路由器状态( Angular 元素)

angular - 我可以拥有在单个 js 文件中发出 Angular 元素的 Angular 库吗?

angular - 静态解析符号值时遇到错误。调用函数 'CreateCustomComponent' ,不支持函数调用

angular - 如何在 Angular 2 中创建可重用的动画

angular - 包含我的 Angular Web 组件的样式,这样它就不会渗透到使用它的组件

Angular 元素 - 未捕获的类型错误 : Failed to construct 'HTMLElement'

angular - 响应主体为空,状态为 200

visual-studio - NgxLocalStorage 不检索值