Я новичок в angular, и я борюсь с получением событий в родительском компоненте. Я знаю, что эта проблема обсуждалась ранее, но каким-то образом ни один из советов или руководств, которые я прочитал, не помог бы мне понять, что я делаю неправильно ...
В моем дочернем component.ts я делаю что-то вроде этого:
import { Component, EventEmitter, OnInit, Output } from '@angular/core'
@Component({
selector: 'app-test',
templateUrl: './test.component.html',
styleUrls: ['./test.component.css'],
template: `<button class='btn btn-primary' (click)="nameChanged()">Click me</button> `
})
export class TestComponent implements OnInit {
@Output() onTestEvent = new EventEmitter<string>()
public text: string = "blah";
constructor() { }
ngOnInit() {
}
nameChanged() {
console.log('Sending test event!');
this.onTestEvent.emit(this.text)
}
}
В html-файле родительского компонента я делаю что-то вроде этого:
<app-test>
(onTestEvent)="handleTestEvent($event)"
</app-test>
В моем файле ts родительского компонента я делаю что-то вроде этого:
handleTestEvent(text: string) {
console.log('handling test event....');
}
Я вижу, что функция nameChanged вызывается, когда я нажимаю кнопку, но я не получаю событие в родительском компоненте по какой-то причине, которая мне не подходит ...