В моем дочернем компоненте у меня есть две кнопки, подобные следующим:
child-component. html
<div>
<button (click)="getFirstData()">First</button>
<button (click)="getLastData()" >Last</button>
</div>
In child-component. ts:
export class ChildComponent implements OnInit, AfterViewInit {
firstItem: number;
lastItem: number;
constructor() {
}
ngOnInit() {
}
ngAfterViewInit(): void {
}
getFirstData() {
this.firstItem = 1;
return this.firstItem;
}
getLastData() {
this.lastItem= 10;
return this.lastItem;
}
}
В родительском компоненте мне нужно получить данные firstItem
и lastItem
после вызова соответствующего метода из дочернего компонента. Когда я пытаюсь получить это в родительском компоненте, используя ViewChild
в AfterViewInit
ловушке жизненного цикла, как показано ниже:
parent-component.ts
export class ParentComponent implements OnInit, AfterViewInit {
@ViewChild(ChildComponent, {static: true}) child: ChildComponent;
first: number;
last: number;
ngOnInit() {
}
ngAfterViewInit() {
console.log('first value ', this.child.getFirstData());
console.log('last value ', this.child.getLastData());
}
getValues(): void {
// some operations heer
}
}
я могу не получаю эти данные от потомка.
Моя цель - получить эти данные после того, как метод, вызванный в потомке, после события нажатия кнопки там. И после получения мне нужно вызвать метод getValues()
в родительском компоненте.
Как мне этого добиться?