3

angular version: AngularJS v1.3.6 http://github.com/angular-ui/ui-select : Version: 0.8.3

var p1 = { name: 'Ramesh', email: 'Ramesh@email.com', age: 99 };

   $scope.people = [
            { 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: 'Adrian',    email: 'adrian@email.com',    age: 21 },
            p1
        ];

 $scope.people.selected = p1 ;

html:

  <ui-select  class="full-width-select select" ng-model="people.selected" theme="select2">
                <ui-select-match  allow-clear="false">{{$select.selected.name}}</ui-select-match>
                <ui-select-choices repeat="person in people | filter:$select.search">
                    <div ng-bind-html="person.name | highlight: $select.search"></div>
                </ui-select-choices>
            </ui-select>

Issue is When p1 is selected programatically the

p1 object is not highlighted in the ui-select drop down.

Output is:

enter image description here

http://plnkr.co/edit/3mrECwGJbz2UYcrDiCha?p=preview

enter image description here

Cœur
  • 37,241
  • 25
  • 195
  • 267
praveenpds
  • 2,936
  • 5
  • 26
  • 43
  • AngularJS version? Tried it and worked. Can you show your HTML? – tasseKATT Jan 26 '15 at 08:59
  • Can you try to replicate it here: http://plnkr.co/edit/3ZQfh4S0KOA9EQm1NS7b?p=preview – tasseKATT Jan 26 '15 at 11:31
  • http://plnkr.co/edit/3mrECwGJbz2UYcrDiCha?p=preview , click on button select Ramesh or Select John , and if you click on the select dropdown the option in the dropdown "ramesh or john" should get highlighted – praveenpds Jan 26 '15 at 12:07
  • Yep , It is working fine , but i suggest switch to new ui-select version is better approch – praveenpds Jan 27 '15 at 16:19
  • Good :) Please accept the answer to mark the question as answered, or if you feel the answer was not enough, provide one yourself. As long as it will not remain as unsolved :) – tasseKATT Jan 27 '15 at 16:23
  • How did you solve this with the new version @praveenpds? – tomascharad Sep 28 '15 at 20:52

1 Answers1

5

This is due to the following change in AngularJS 1.3.1:

$observe: check if the attribute is undefined

Ui-select uses $observe to set a default value for resetSearchInput:

attrs.$observe('resetSearchInput', function() {
  var resetSearchInput = scope.$eval(attrs.resetSearchInput);
  $select.resetSearchInput = resetSearchInput !== undefined ? resetSearchInput : true;
});

But since the change noted above and since resetSearchInput is undefined, the observer function will never get executed.

To solve it for now add the following attribute to your ui-select element:

reset-search-input="'false'"

Demo: http://plnkr.co/edit/M0pXrN3n6CBjjoJXS4df?p=preview

tasseKATT
  • 38,470
  • 8
  • 84
  • 65