Я создал компонент с событием, давайте вызовем его (onAction). Внутри одного и того же родительского компонента или страницы он используется в двух местах (которые сами являются компонентами). Разница лишь в том, что в ng-шаблоне используется одно место, которое используется в модальном режиме (точнее, NgbModal из библиотеки angular - bootstrap4).
Тот, которого нет в ng-шаблоне, работает нормально. Тем не менее, когда событие внутри ng-шаблона запускается, оно как будто не связано с onActionB, и событие перехватывается другим компонентом.
Вот некоторый общий код, который будет понятен, давайте для простоты назовем его компонентом «comp» и двумя родительскими компонентами, которые используют его «parentA» и «parentB»
<parentA>
...
<comp (onAction)="onActionA($event)"></comp>
...
</parentA>
<parentB>
...
<ng-template #someModal>
<comp (onAction)="onActionB($event)"></comp>
</ng-template>
...
</parentB>
Когда отображается #someModal, создается впечатление, что (onAction) связывается с onActionA в parentA. Он вызывает onActionA ($ event) вместо onActionB ($ event). Странно то, что если я закомментирую comp в parentA, то активируется onActionB в parentB.