используйте ng-click и привязку к состоянию, не работайте с DOM сами.
Вся суть ангуляра в декларативности вью, то есть никаких попыток самостоятельно что-то поменять в DOM.
<div class="hide-elements" ng-class="{'your-class-name': vm.some.condition}"></div>
<button class="add" ng-click="vm.add()">+</button>
в контроллере меняете состояние компонента и все хорошо.
Поясню идею, почему это хорошо. Если у вашего приложения нет привязки к DOM и он оперирует примитивами, который предоставляет вам ангуляр (ngHide/ngShow/ngClass/ngRepeat и т.д.) то вам не нужно париться вообще о том как формируется представление. Уменьшается возможность побочных эффектов, отсутствует необходимость покрывать код тестами (ну или волноваться что что-то сломается просто так), достаточно проверить что приложение входит в необходимое состояние а ангуляр вам уже гарантирует что представление под это состояние подстроится так, как вы это задекларировали в шаблонах.