Enough people want to do the select directive correctly, but still are having problems. So here is the top issue that I have tried to clear up.
So if we assume that myValueArray looks like:
var myValueArray = [{id:1, name:"bob"},{id:2, name:"bill"},];
and we assume that myVar looks like
var myVar = 2;
And here is the HTML
<select ng-model="myVar" required ng-options="obj.id as obj.name for obj in myValueArray"> </select>
Then you will get a drop-down that is prepopulated with bob and bill, but bill is selected.