It seems like <ion-nav-buttons> is just a way to place the proper dom elements in the right place. It doesn’t act like an element itself. The easiest way to solve this is to place the ng-hide attribute on the button itself (or on a div that surrounds all the buttons).
I’ve tried conditionally hiding and showing elements in ion-nav-buttons element and found it to be laggy. There’s time where both elements are visible making a jarring transition.
I have the same issue with ng-show, ng-hide and custom button in nav-bar. Not sure it would help you, but finally I used following workaround in custom directive( my goal was to show button in nav bar when no back button was shown):
I have used ng-if and that works.Set the scope variable to true or false and place that in ng-if to show/hide Navigation Side menu. ng-show/ng-hide will not work here as this is ionic controlled.
If you want to hide it on the whole view, then add <ion-nav-buttons side="left"></ion-nav-buttons>
before your ion-content
it will override the one you have placed elsewhere (an abstract state or in the index or whatever)