{{ counter || '?'}}
.
Just pure javascript. ||
can be used as default value. Since it would be different empty messages in each, a generalized directive would not be suitable for many cases.
If you want to apply a different class to empty ones, that’s also built-in:
<div ng-class="{empty: !counter}" ng-bind="counter || ?"></div>