 <p>Perhaps you could simplify and use <a href="https://docs.angularjs.org/api/ng/directive/ngSwitch" rel="nofollow"><code>ng-switch</code></a> instead.</p> <p>Something like this:</p> <pre><code>&lt;ul ng-switch="expression"&gt; &lt;li ng-switch-when="firstThing"&gt;my first thing&lt;/li&gt; &lt;li ng-switch-when="secondThing"&gt;my second thing&lt;/li&gt; &lt;li ng-switch-default&gt;default&lt;/li&gt; &lt;/ul&gt; </code></pre> <p>Alternatively, maybe you could use <code>ng-if</code> or <code>ng-show</code> instead of <code>ng-hide</code>, eg:</p> <pre><code>&lt;p ng-if="HideAddNew"&gt;it's here!&lt;/p&gt; &lt;p ng-if="!HideAddNew"&gt;it's not here.&lt;/p&gt; </code></pre> <p><strong>Edit</strong></p> <p>If I understand what you're trying to achieve <em>exactly</em>, I would use <code>ng-show</code> with an <code>ng-click</code>:</p> <p>Controller: </p> <pre><code>$scope.addNew = false; </code></pre> <p>View:</p> <pre><code>&lt;button ng-show="!addNew" ng-click="addNew = true"&gt;Add New&lt;/button&gt; &lt;button ng-show="addNew" ng-click="save()"&gt;Save&lt;/button&gt; &lt;button ng-show="addNew" ng-click="addNew = false"&gt;Cancel&lt;/button&gt; </code></pre> <p><a href="http://codepen.io/anon/pen/raXEWK" rel="nofollow">Example</a></p>