I make heavy use of this trick
ng-if="::vm.isLoaded || undefined"
Copying over from GitHub:
ngIf with one-time binding is indeed not possible currently and is a usecase (the only one afaik) that makes
ngUnless (the opposite of
ngIf) enable something that is not already possible.
A more verbose work-around for achieving what you want is to use
ngSwitch (although this adds an extra DOM element - which you can hide of course).
<div ng-switch="::(foo || undefined)"> <div ng-switch-when="undefined"> This text will be removed for ever, once `foo` evaluates to something truthy </div> </div>
ngIf is just a plain old directive (and not a complex one for that matter), so it is not difficult to copy and modify its source code and include it in your app.
Here is an "ngUnless"-like demo.