Very happy to hear how this could be done differently. I also agree that it's a bit cumbersome. 
Reasoning: 
It was decided that the feedback directive contains only the feedback form. So the container of this form (a modal dialog for map.geo.admin.ch, but maybe an accordion panel in mobile.map.geo.admin.ch) is not known from the directive. So, the management of the modal dialog has to be made on the application level -> that is why I proposed to make it in the feedback controller. In order to inform the feedback controller that a form has been sent, I proposed to send an event (broadcast). Based on this event, the controller can close the modal dialog and show a confirmation dialog.