I was just about to create a directive as suggested and then realised that all you actually need to do is this:
<a ng-attr-target="{{(condition) ? '_blank' : undefined}}">
...
</a>
ng-attr-xyz lets you dynamically create @xyz, and if the value is undefined no attribute is created — just what we want.