Der Versuch, mit @Output Ereignis-Emitter-Kind Mutter Kommunikation zu tun, aber nicht arbeiten hier ist das Kind KomponenteAngular @Output Arbeits
import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core';
@Component({
selector: 'app-emiter',
templateUrl: './emiter.component.html',
styleUrls: ['./emiter.component.css']
})
export class EmiterComponent implements OnInit {
@Output() emitor: EventEmitter<any>
constructor() { this.emitor = new EventEmitter()}
touchHere(){this.emitor.emit('Should Work');
console.log('<><><><>',this.emitor) // this comes empty
}
ngOnInit() {
}
}
diese HTML-Template
<p>
<button (click)=" touchHere()" class="btn btn-success btn-block">touch</button>
</p>
Das ist console.log innerhalb der touchHier zeigt es nichts auch wenn ich dies in die Mutterkomponente einfügen, zeigt es auch nichts Elternkomponente
import { Component , OnInit} from '@angular/core';
// service I use for other stuff//
import { SenderService } from './sender.service';
// I dont know if I have to import this but did it just in case
import { EmiterComponent } from './emiter/emiter.component'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app';
user: any;
touchThis(message: string) {
console.log('Not working: ${message}');
}
constructor(private mySessionService: SenderService) { }
}
und hier ist die HTML-Vorlage
<div>
<app-emiter>(touchHere)='touchThis($event)'</app-emiter>
</div>
@Output Dekorateur ist in Kind, weil das Kind ein Ereignis ausstrahlen wird. Dieses Ereignis sollte console.logged sein, zeigt aber leer an. Im Elternteil legte ich den Ereignishandler an, um das emertierte Ereignis zu erhalten, aber im Kind sollte ich etwas sehen, wenn console.log – shark6552
Natürlich @Output ist es in Kind-Komponente und Sie sollten es in der Eltern-Vorlage aufrufen. In Ihrem Code rufen Sie die Child-Methode (TouchHere) stattdessen – Vega
Dies ist die übergeordnete Vorlage