@@ -57,9 +57,25 @@ directiveModule.directive('ngDropdownMultiselect', ['$filter', '$document', '$co
5757 } ,
5858 link : function ( $scope , $element , $attrs , ngModelCtrl ) {
5959 $attrs . msRequired = ( $attrs . msRequired === "" ) ? true : false ;
60+
61+ $scope . $watchCollection ( "ngModelCtrl.$modelValue" , function ( ) {
62+ if ( $scope . singleSelection ) {
63+ if ( ngModelCtrl . $modelValue [ $scope . settings . externalIdProp ] )
64+ $attrs . msRequired && ngModelCtrl . $setValidity ( "required" , true )
65+ else
66+ $attrs . msRequired && ngModelCtrl . $setValidity ( "required" , false )
67+ }
68+ else {
69+ if ( ngModelCtrl . $modelValue . length == 0 ) {
70+ // console.log("a")
71+ $attrs . msRequired && ngModelCtrl . $setValidity ( "required" , false )
72+ }
73+ else
74+ $attrs . msRequired && ngModelCtrl . $setValidity ( "required" , true )
75+ }
76+ } )
6077
61- $attrs . msRequired && ngModelCtrl . $setValidity ( "required" , false )
62-
78+
6379 var $dropdownTrigger = $element . children ( ) [ 0 ] ;
6480
6581 $scope . toggleDropdown = function ( ) {
@@ -253,7 +269,7 @@ directiveModule.directive('ngDropdownMultiselect', ['$filter', '$document', '$co
253269 } ;
254270
255271 $scope . setSelectedItem = function ( id , dontRemove ) {
256-
272+
257273 $attrs . msRequired && ngModelCtrl . $setValidity ( "required" , true )
258274 var viewValue = { }
259275
@@ -289,7 +305,6 @@ directiveModule.directive('ngDropdownMultiselect', ['$filter', '$document', '$co
289305 }
290306
291307 if ( ngModelCtrl . $modelValue . length == 0 ) {
292- console . log ( "aaa" )
293308 $attrs . msRequired && ngModelCtrl . $setValidity ( "required" , false )
294309 }
295310 } ;
@@ -303,6 +318,7 @@ directiveModule.directive('ngDropdownMultiselect', ['$filter', '$document', '$co
303318 } ;
304319
305320 $scope . externalEvents . onInitDone ( ) ;
321+
306322 }
307323 } ;
308324 } ] ) ;
0 commit comments