EventEmitter angular de salida 6 Elemento personalizado

votos
0

Tengo un elemento con un emisor de eventos de salida y no puedo encontrar la manera de capturar el evento. Me sale este error:

Tipo '() => vacío' no es asignable al tipo 'EventEmitter'.

esta es la salida

  @Output() closeMarkers = new EventEmitter<string>();

Y así es como agrego el elemento al componente:

              createPopupComponentWithMessage(latitude, longitude, city) {
                    const popupEl: NgElement & WithProperties<MarkerNewComponent> = document.createElement('new-marker') as any;
                      //Set MarkerNewComponent input vars
                      popupEl.city=city;
                      popupEl.latitude=latitude;
                      popupEl.longitude=longitude;
                      popupEl.closeMarkers = this.testOutput ;
                      popupEl.addEventListener('closed', () =>  document.body.removeChild(popupEl));

                      // Add to the DOM
                      document.body.appendChild(popupEl);
                    return popupEl;
                  }

        testOutput (){
               console.log('test output');
             }
Publicado el 27/11/2018 a las 16:55
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

En el componente padre, usted debe tener una etiqueta para su componente niños

por ejemplo

PARENT.COMPONENT.HTML

<div> myInformation</div>
<myChild></myChild>

para coger el caso de su hijo debe hacerlo de esta manera

<div> myInformation</div>
<myChild (closeMarkers)="myParentFunctionToHandleIt($event)" ></myChild>

aquí es la documentación: https://angular.io/api/core/EventEmitter

EDIT: en el componente principal, se puede especificar el tipo de evento

PARENT.COMPONENT.TS

myParentFunctionToHandleIt(value: MyCustomType) {
//your way to handle your event
}
Respondida el 27/11/2018 a las 17:03
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more