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","");
$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);
}