Используя Angular 6 здесь.У меня есть страница, которая имеет около 2 дочерних компонентов.Первый имеет 2 входных текста, а второй имеет один выпадающий.У моего родительского компонента просто есть нажатие кнопки.
Я знаю, что могу использовать Eventemitter на своем дочернем компоненте и передать значение своему родителю, но как мне передать значение от моего ребенка, если нет событий нажатия кнопки.Я пытался использовать ViewChild, который работает, но есть задержка, пока представление не будет полностью загружено.Я использую ViewChild, как показано ниже:
- Родитель -
import { Component, ViewChild, AfterViewInit } from '@angular/core';
import { ChildComponent } from "../child/child.component";
@Component({
selector: 'app-parent',
template: `
Message: {{ message }}
<app-child></app-child>
`,
styleUrls: ['./parent.component.css']
})
export class ParentComponent implements AfterViewInit {
@ViewChild(ChildComponent) child;
constructor() { }
message:string;
ngAfterViewInit() {
this.message = this.child.message
}
}
- Ребенок -
import { Component} from '@angular/core';
@Component({
selector: 'app-child',
template: `
`,
styleUrls: ['./child.component.css']
})
export class ChildComponent {
message = 'Hola Mundo!';
constructor() { }
}
Я взял вышеприведенный пример из https://angularfirebase.com/lessons/sharing-data-between-angular-components-four-methods/
Может ли кто-нибудь предоставить информацию о том, как я могу добиться передачи / чтения данных от ребенка без использования какого-либо нажатия кнопки / эмиттера.
- Обновлено -
- Ребенок -
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'ct-child',
templateUrl: './child.html'
})
export class ChildComponent implements OnInit {
childmessage: string = "Child Message!"
constructor() { }
ngOnInit() {}
}
- Родитель -
import { Component, OnInit} from '@angular/core';
@Component({
selector: 'ct-parent',
templateUrl: './parent.html'
})
export class ParentComponent implements OnInit {
constructor() { }
message: string;
getDataFromChild(child1): void {
this.message = child1.message;
}
ngOnInit() {}
}
- Родитель Html--
Message: {{message}}
<ct-child #child1></ct-metadata>
<button type="button" (click)="getDataFromChild(child1)">Click Me!</button>
Я пробовал выше по комментариям, но это не работает.