From 9dec776a215127e6030b29386058e5e3a14ff470 Mon Sep 17 00:00:00 2001 From: Christoph Tavan Date: Tue, 18 Nov 2014 08:37:51 +0000 Subject: [PATCH 1/2] Make $select.multiple definition more readable. --- src/select.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/select.js b/src/select.js index 3b81924b1..fcfb4c793 100644 --- a/src/select.js +++ b/src/select.js @@ -630,7 +630,11 @@ 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() === 'true' + ); + $select.closeOnSelect = (angular.isDefined(attrs.closeOnSelect) && attrs.closeOnSelect.toLowerCase() === 'false') ? false : uiSelectConfig.closeOnSelect; $select.onSelectCallback = $parse(attrs.onSelect); $select.onRemoveCallback = $parse(attrs.onRemove); From fb637a9db3de28c999ff53b97a523db91604d449 Mon Sep 17 00:00:00 2001 From: Christoph Tavan Date: Tue, 18 Nov 2014 08:38:17 +0000 Subject: [PATCH 2/2] Support `multiple="multiple"` attribute. Some html preprocessors will transform into which is currently not supported by angular-ui-select. This patch fixes the issue. --- src/select.js | 1 + test/select.spec.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/select.js b/src/select.js index fcfb4c793..7b34c650a 100644 --- a/src/select.js +++ b/src/select.js @@ -632,6 +632,7 @@ $select.multiple = angular.isDefined(attrs.multiple) && ( attrs.multiple === '' || + attrs.multiple.toLowerCase() === 'multiple' || attrs.multiple.toLowerCase() === 'true' ); 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() {