Я лично сделал то, что вы пытаетесь сделать в прошлом, создав 2 отдельных компонента.Я считаю, что это более чистая реализация, предполагающая, что все, что вы делаете в этом сервисе, - это обмен данными.Но технически нет ничего плохого в использовании сервиса, если вы действительно хотите пойти по этому пути.Если бы вы выполняли операции с этими данными, которые были бы независимы как от модального режима, так и от компонента, и хотели запускать их отдельно и независимо от компонента или модального режима, я бы больше склонялся к использованию службы.
Концепция использования 2-х компонентов поясняется ниже:
Таким образом, у вас будет свой компонент, который у вас уже есть, но конвертируйте модальный в ваш второй компонент.
Все, что нужно разделить междутогда эти два компонента могут быть выполнены с помощью @Input
, @ViewChild
и @Output
.По сути, все, что вам нужно передать из компонента верхнего уровня, вы бы использовали @Input
в модальном компоненте.Все, что вам нужно, чтобы уведомить компонент верхнего уровня из модального режима, в зависимости от того, что вы пытаетесь передать обратно по дереву, или какое поведение вы хотите вызвать, вы можете использовать либо @Output
, либо EventEmitter
из@angular/core
импортирует в модальный компонент, или вы можете использовать @ViewChild
в компоненте верхнего уровня.