From 178b174f3fc3ca2ae78bd20cd5c957b8a64f75b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=83=D1=80=20=D0=93=D0=B5=D1=80=D0=B0?= =?UTF-8?q?=D1=89=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Thu, 31 Mar 2016 13:55:05 +0300 Subject: [PATCH 1/2] [~] Fix bug with required validation error with default value --- .gitignore | 6 ++++++ dist/angular-selectize.js | 16 +++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cc046a1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/.idea/* +*.iml +.sass-cache +src/main/webapp/app/bower_components/** +node_modules +!/.idea/runConfigurations/ diff --git a/dist/angular-selectize.js b/dist/angular-selectize.js index a009975..a1f6b72 100755 --- a/dist/angular-selectize.js +++ b/dist/angular-selectize.js @@ -22,7 +22,7 @@ angular.module('selectize', []).value('selectizeConfig', {}).directive("selectiz var toggle = function(disabled) { disabled ? selectize.disable() : selectize.enable(); - } + }; var validate = function() { var isInvalid = (scope.ngRequired() || attrs.required || settings.required) && isEmpty(scope.ngModel); @@ -41,20 +41,22 @@ angular.module('selectize', []).value('selectizeConfig', {}).directive("selectiz selectize.refreshOptions(false); // updates results if user has entered a query setSelectizeValue(); - } + }; var setSelectizeValue = function() { + if (!angular.equals(selectize.items, scope.ngModel)) { + selectize.setValue(scope.ngModel, true); + } + + // validate should run after set value because + // else we have a bug with novalid input with default value validate(); selectize.$control.toggleClass('ng-valid', modelCtrl.$valid); selectize.$control.toggleClass('ng-invalid', modelCtrl.$invalid); selectize.$control.toggleClass('ng-dirty', modelCtrl.$dirty); selectize.$control.toggleClass('ng-pristine', modelCtrl.$pristine); - - if (!angular.equals(selectize.items, scope.ngModel)) { - selectize.setValue(scope.ngModel, true); - } - } + }; settings.onChange = function(value) { var value = angular.copy(selectize.items); From 7abb5188d45a063ebc1e2a3da467041f41011e9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=83=D1=80=20=D0=93=D0=B5=D1=80=D0=B0?= =?UTF-8?q?=D1=89=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Thu, 31 Mar 2016 14:40:23 +0300 Subject: [PATCH 2/2] [~] Fix bug with required validation error with default value (https://github.com/machineboy2045/angular-selectize/issues/110, https://github.com/machineboy2045/angular-selectize/issues/116, https://github.com/machineboy2045/angular-selectize/issues/121) --- dist/angular-selectize.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/angular-selectize.js b/dist/angular-selectize.js index a1f6b72..d7681aa 100755 --- a/dist/angular-selectize.js +++ b/dist/angular-selectize.js @@ -17,7 +17,10 @@ angular.module('selectize', []).value('selectizeConfig', {}).directive("selectiz scope.config = scope.config || {}; var isEmpty = function(val) { - return val === undefined || val === null || !val.length; //support checking empty arrays + if(angular.isArray(val)) { + return (val.length === 0); + } + return modelCtrl.$isEmpty(val); //call to real Angular function }; var toggle = function(disabled) { @@ -47,9 +50,6 @@ angular.module('selectize', []).value('selectizeConfig', {}).directive("selectiz if (!angular.equals(selectize.items, scope.ngModel)) { selectize.setValue(scope.ngModel, true); } - - // validate should run after set value because - // else we have a bug with novalid input with default value validate(); selectize.$control.toggleClass('ng-valid', modelCtrl.$valid);