diff --git a/src/select.js b/src/select.js index 3b81924b1..7b34c650a 100644 --- a/src/select.js +++ b/src/select.js @@ -630,7 +630,12 @@ var searchInput = element.querySelectorAll('input.ui-select-search'); - $select.multiple = (angular.isDefined(attrs.multiple)) ? (attrs.multiple === '') ? true : (attrs.multiple.toLowerCase() === 'true') : false; + $select.multiple = angular.isDefined(attrs.multiple) && ( + attrs.multiple === '' || + attrs.multiple.toLowerCase() === 'multiple' || + attrs.multiple.toLowerCase() === 'true' + ); + $select.closeOnSelect = (angular.isDefined(attrs.closeOnSelect) && attrs.closeOnSelect.toLowerCase() === 'false') ? false : uiSelectConfig.closeOnSelect; $select.onSelectCallback = $parse(attrs.onSelect); $select.onRemoveCallback = $parse(attrs.onRemove); diff --git a/test/select.spec.js b/test/select.spec.js index 461ec3c13..f76c7fec8 100644 --- a/test/select.spec.js +++ b/test/select.spec.js @@ -1520,6 +1520,22 @@ describe('ui-select tests', function() { .toBe("Wladimir Samantha Nicole "); }); + + it('should support multiple="multiple" attribute', function() { + + var el = compileTemplate( + ' \ + {{$item.name}} <{{$item.email}}> \ + \ +
\ +
\ +
\ +
\ + ' + ); + + expect(el.scope().$select.multiple).toBe(true); + }); }); describe('default configuration via uiSelectConfig', function() {