Т. к. везде есть ответ - передавать какой-нибудь индекс, чтобы проверять на вызове, но нигде не видел причину
Причина одна: посмотрите на стековерфлоу - там два элемента слушают один и тот же параметр - конечно возникнет конфликт. В таких моментах я обычно делаю через ngClass - у блока есть ид например - при клике одному параметру передаю ид блока - и в самом блоке же проверяю в ngClass - если выбранный ид (то есть параметр) равен ид блока, то подключаю css класс А, если не равен, то подключаю css класс B