I have a select that uses ng-options to populate the select as follows:
Just add a default option, just so angular will use this option when there is nothing selected in the ngModel or an invalid item is populated in the model. This way you don't need to add an empty value in your collection.
You could also change the text based on the condition:-
You can also remove it from DOM if it has already a selected value.