С риском, чтобы звучать немного отрывочно, вам придется пройти через вашу мать. Братья и сестры не могут напрямую разговаривать друг с другом.
Если я правильно вас понимаю, ваш mother.component.html выглядит примерно так:
<comp-a (your-event)="handleEvent()"></comp-a>
<comp-b></comp-b>
В предоставленном handleEvent()
есть метод, который должен существовать в вашем MotherComponent
, потому что события (EventEmitter
) в Angular всегда передаются наверх их родителю.
В MotherComponent
вы можете затем передать событие в CompBComponent
:
export class MotherComponent {
@ViewChild(CompBComponent)
compB: CompBComponent;
handleEvent() {
this.compB.doStuff();
}
}
Это хорошо для этого относительно простого сценария. Если вам нужно подняться на несколько слоев, а затем всегда идти вниз на несколько слоев, это решение быстро становится утомительным. Создание инъекционной службы с каким-либо свойством observable
, вероятно, станет более подходящим.
p.s. Я не очень хорошо разбираюсь в Dart, так что, надеюсь, примеры TypeScript будут иметь смысл для вас.