Правильно ли использовать сервисы для связи между угловыми компонентами? - PullRequest
0 голосов
/ 30 мая 2018

Правильно ли использовать сервисы для связи между угловыми компонентами ?
Если у меня есть компонент, открывающий модальный

this.taskService.activeTask = this.currentTask;
this.tagSelectModalRef = this.modalService.show(TagSelectorComponent, {});

Верно ли "передать "элемент, с которым модал должен работать через сервис, как в примере?

Если бы это были компоненты, которые визуализируют рядом друг с другом, где щелчок в одном из них влияет на другой компонент, будет ли он такжебыть правильным?

Спасибо,
Энрик

Ответы [ 3 ]

0 голосов
/ 30 мая 2018

Я лично сделал то, что вы пытаетесь сделать в прошлом, создав 2 отдельных компонента.Я считаю, что это более чистая реализация, предполагающая, что все, что вы делаете в этом сервисе, - это обмен данными.Но технически нет ничего плохого в использовании сервиса, если вы действительно хотите пойти по этому пути.Если бы вы выполняли операции с этими данными, которые были бы независимы как от модального режима, так и от компонента, и хотели запускать их отдельно и независимо от компонента или модального режима, я бы больше склонялся к использованию службы.

Концепция использования 2-х компонентов поясняется ниже:

Таким образом, у вас будет свой компонент, который у вас уже есть, но конвертируйте модальный в ваш второй компонент.

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

0 голосов
/ 30 мая 2018

Вам необходимо использовать сервисы для связи между родственными компонентами.Если вам нужно общаться с родителями с детьми или детьми с родителями, используйте @input и @ output

0 голосов
/ 30 мая 2018

Да, вы можете использовать сервис для связи между компонентами.Это четко задокументировано в официальной угловой документации в разделе взаимодействия компонентов .

...