我在使用自定义角度元素时陷入困境,每当我发出一个值时,即true
or false
,使用时效果很好element
在同一个角度项目中,每当我通过创建捆绑的元素来使用其他项目中的元素时JS
文件。它显示了Inputs events
在父组件中。
这是我在父组件中的角度元素
<app-address [model]="address" [isAddressValid]="isValid"
(getValidity)="getValue($event)" placeholder="placeholder" label="label" isRequired="false" ></app-address>
在父组件中我正在访问类似的值
getValue(data) {
console.log(data)
}
而不是显示发出的数据,即true
or false
它向我展示inputs
event.
这就是我导入文件的方式
import '../../../Elements/angular-address-element/elements/app-address-element'
子组件
@Output() getValidity = new EventEmitter<any>();
this.getValidity.emit(true)
我正在调用这个emit
on change
event.
Angular 元素将输出分派为自定义事件document.createEvent('CustomEvent')
。这意味着您将始终获得正确的事件对象,而不是原语。
组件输出作为 HTML 自定义事件进行分派,自定义事件的名称与输出名称匹配。例如,对于带有 @Output() valueChanged = new EventEmitter() 的组件,相应的自定义元素将调度名称为“valueChanged”的事件,并且发出的数据将存储在事件的详细信息属性中。如果您提供别名,则使用该值;例如, @Output('myClick') clicks = new EventEmitter();导致名为“myClick”的调度事件。
所以你的代码应该是这样的:<some-element (someEvent)="eventHandler($event.detail)> </some-element>"
See:
https://blog.angularindepth.com/how-angular-elements-uses-custom-events-mechanism-to-transmit-components-outputs-outside-angular-7b469386f6e2
https://angular.io/guide/elements#mapping
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)