Я бы строго рассмотрел вопрос о передаче передачи данных в общую службу вместо того, чтобы пытаться передать все это через входы и выходы.
Если компоненту "C" не требуется какая-либо информация, связанная с "A" или "B", то он вообще не должен обрабатывать ее.
Общая службаможет иметь около 20 элементов данных, а также Subject или BehaviorSubject для «A» и «B» для передачи изменений обратно на «D».
Я не уверен, что вы делаетедостаточно сложный, чтобы это оправдать, но если вы делаете много подобных вещей, то Redux может дать вам хороший пример для этого.
В последнее время я начал использовать Redux с большим успехом,когда простая привязка слишком проста.Я нашел ngrx / store немного суетливым, сложным в использовании и плохо документированным, несмотря на то, что он получал много прессы, и обнаружил, что angular-redux (тонкая оболочка Angular поверх реальной библиотеки Redux) проще в использовании, и он имеетлучшая документация.