{{ 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>