Wie wird die Kommunikation zwischen contentChildren und seinem übergeordneten Element bevorzugt?Angular 2: contentChildren communication
AKTUALISIERT: Kind möglicherweise nicht direkt Eltern ...
eine zufällige Liste von Kindern gegeben, die von einer Gruppe eingewickelt:
<child-group>
<div>Some other content, child may not be direct parent...</div>
<child *ngFor="let item of data$ | async;"></child>
</child-group>
Das Kind Komponente:
@Component({
selector: 'child',
template: '<button (click)="didSomethingTellGroup()"></button>',
styleUrls: ['child.component.scss'],
})
export class ChildComponent implements OnInit {
constructor() {
}
ngOnInit() {
}
doSomething() {
console.log('Called from group component')
}
didSomethingTellGroup() {
//EventEmitter?
//Observable?
}
}
Die Hauptkomponente:
Wie kann ich eine Child-Methode von ChildGroup aufrufen? Und wie kann ein Kind Informationen an die ChildGroup zurücksenden?
UPDATE:
In den Kommentaren unten erwähnte ich, dass, wenn ich eine Methode auf dem Kind nichts zu berufen versuche vorging. Nun stellt sich heraus, dass ich zu den erforderlichen Änderungen abonnieren und für die Kinder warten ... dann war ich in der Lage
ngAfterContentInit()
{
this.childrenList.changes
.subscribe(list => {
list.forEach(c => c.doSomething())
}
);
}
Sie können eine Funktion auf Kind erstellen, die Sie auf childrenList Schleife aufrufen können, in ähnlicher Weise können Sie einen eventemitter erstellen, die Sie in der übergeordneten abonnieren können. –