EDIT: Wasn't the line I thought it was, but something is very off.
Whenever anything in my app updates that has some distant binding to the dropdown, the dropdown closes without firing closeMenu.
It seems that the link function on the directive is called every time something happens within any sort of scope with it, because of how bindings work... and this is calling the following line:
if(dropdown) {
dropdown.css('display', 'none');
}