diff --git a/src/uiSelectMultipleDirective.js b/src/uiSelectMultipleDirective.js
index 10e2e3639..072eada43 100644
--- a/src/uiSelectMultipleDirective.js
+++ b/src/uiSelectMultipleDirective.js
@@ -162,7 +162,7 @@ uis.directive('uiSelectMultiple', ['uiSelectMinErr','$timeout', function(uiSelec
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);
}
diff --git a/test/select.spec.js b/test/select.spec.js
index fbfeb8a93..8959381e5 100644
--- a/test/select.spec.js
+++ b/test/select.spec.js
@@ -2494,6 +2494,43 @@ describe('ui-select tests', function() {
expect(el.scope().$select.items[1]).toEqual(jasmine.objectContaining({name: 'Amalie', email: 'amalie@email.com'}));
});
+
+ it('should have tolerance for undefined values', function () {
+
+ scope.modelValue = undefined;
+
+ var el = compileTemplate(
+ ' \
+ {{$item.name}} <{{$item.email}}> \
+ \
+ \
+ \
+ \
+ \
+ '
+ );
+
+ expect($(el).scope().$select.selected).toEqual([]);
+ });
+
+ it('should have tolerance for null values', function () {
+
+ scope.modelValue = null;
+
+ var el = compileTemplate(
+ ' \
+ {{$item.name}} <{{$item.email}}> \
+ \
+ \
+ \
+ \
+ \
+ '
+ );
+
+ expect($(el).scope().$select.selected).toEqual([]);
+ });
+
it('should allow paste tag from clipboard', function() {
scope.taggingFunc = function (name) {
return {