diff --git a/dist/select.js b/dist/select.js index 3afe26f55..93674b8b2 100755 --- a/dist/select.js +++ b/dist/select.js @@ -640,7 +640,9 @@ var data = $select.parserResult.source (scope, { $select : {search:''}}), //Overwrite $search locals = {}, result; - if (data){ + if (data && + + data.length){ if ($select.multiple){ var resultMultiple = []; var checkFnMultiple = function(list, value){ @@ -648,7 +650,7 @@ for (var p = list.length - 1; p >= 0; p--) { locals[$select.parserResult.itemName] = list[p]; result = $select.parserResult.modelMapper(scope, locals); - if (result == value){ + if (angular.equals(result,value)){ resultMultiple.unshift(list[p]); return true; } @@ -793,13 +795,15 @@ if(!angular.isArray(ngModel.$viewValue)){ // Have tolerance for null or undefined values if(angular.isUndefined(ngModel.$viewValue) || ngModel.$viewValue === null){ - $select.selected = []; + ngModel.$viewValue = []; } else { throw uiSelectMinErr('multiarr', "Expected model value to be array but got '{0}'", ngModel.$viewValue); } } } $select.selected = ngModel.$viewValue; + + }; function onDocumentClick(e) { @@ -981,4 +985,4 @@ $templateCache.put("select2/select-multiple.tpl.html","
"); $templateCache.put("selectize/choices.tpl.html","
{{$group.name}}
"); $templateCache.put("selectize/match.tpl.html","
"); -$templateCache.put("selectize/select.tpl.html","
");}]); \ No newline at end of file +$templateCache.put("selectize/select.tpl.html","
");}]); diff --git a/src/select.js b/src/select.js index 95ba2bbb9..18a4a3cf4 100644 --- a/src/select.js +++ b/src/select.js @@ -654,7 +654,7 @@ var data = $select.parserResult.source (scope, { $select : {search:''}}), //Overwrite $search locals = {}, result; - if (data){ + if (data && data.length){ if ($select.multiple){ var resultMultiple = []; var checkFnMultiple = function(list, value){ @@ -662,7 +662,7 @@ for (var p = list.length - 1; p >= 0; p--) { locals[$select.parserResult.itemName] = list[p]; result = $select.parserResult.modelMapper(scope, locals); - if (result == value){ + if (angular.equals(result,value)){ resultMultiple.unshift(list[p]); return true; } @@ -807,7 +807,7 @@ if(!angular.isArray(ngModel.$viewValue)){ // Have tolerance for null or undefined values if(angular.isUndefined(ngModel.$viewValue) || ngModel.$viewValue === null){ - $select.selected = []; + ngModel.$viewValue = []; } else { throw uiSelectMinErr('multiarr', "Expected model value to be array but got '{0}'", ngModel.$viewValue); }