you did not use an identifier or something similar for the parameter value, so ui-select compares the address of the object to see if it is selected.
var p1 = { name: 'Adam', email: ' adam@email.com ', age: 10 }; $scope.person = {selected: p1}; $scope.people = [ p1, { name: 'Amalie', email: ' amalie@email.com ', age: 12 }, { name: 'Wladimir', email: ' wladimir@email.com ', age: 30 }, { name: 'Samantha', email: ' samantha@email.com ', age: 31 }, { name: 'Estefanía', email: 'estefaní a@email.com ', age: 16 }, { name: 'Natasha', email: ' natasha@email.com ', age: 54 }, { name: 'Nicole', email: ' nicole@email.com ', age: 43 }, { name: 'Adrian', email: ' adrian@email.com ', age: 21 } ];
change the plunker like this and you will have the default value selected.
to set the default value for viewing, you can use ng-init and set the first object as selected
source share