@@ -15,6 +15,7 @@ angular.module('ui.bootstrap.timepicker', [])
15
15
} )
16
16
17
17
. controller ( 'UibTimepickerController' , [ '$scope' , '$element' , '$attrs' , '$parse' , '$log' , '$locale' , 'uibTimepickerConfig' , function ( $scope , $element , $attrs , $parse , $log , $locale , timepickerConfig ) {
18
+ var hoursModelCtrl , minutesModelCtrl , secondsModelCtrl ;
18
19
var selected = new Date ( ) ,
19
20
watchers = [ ] ,
20
21
ngModelCtrl = { $setViewValue : angular . noop } , // nullModelCtrl
@@ -36,6 +37,10 @@ angular.module('ui.bootstrap.timepicker', [])
36
37
minutesInputEl = inputs . eq ( 1 ) ,
37
38
secondsInputEl = inputs . eq ( 2 ) ;
38
39
40
+ hoursModelCtrl = hoursInputEl . controller ( 'ngModel' ) ;
41
+ minutesModelCtrl = minutesInputEl . controller ( 'ngModel' ) ;
42
+ secondsModelCtrl = secondsInputEl . controller ( 'ngModel' ) ;
43
+
39
44
var mousewheel = angular . isDefined ( $attrs . mousewheel ) ? $scope . $parent . $eval ( $attrs . mousewheel ) : timepickerConfig . mousewheel ;
40
45
41
46
if ( mousewheel ) {
@@ -295,14 +300,23 @@ angular.module('ui.bootstrap.timepicker', [])
295
300
ngModelCtrl . $setValidity ( 'time' , false ) ;
296
301
if ( angular . isDefined ( invalidHours ) ) {
297
302
$scope . invalidHours = invalidHours ;
303
+ if ( hoursModelCtrl ) {
304
+ hoursModelCtrl . $setValidity ( 'hours' , false ) ;
305
+ }
298
306
}
299
307
300
308
if ( angular . isDefined ( invalidMinutes ) ) {
301
309
$scope . invalidMinutes = invalidMinutes ;
310
+ if ( minutesModelCtrl ) {
311
+ minutesModelCtrl . $setValidity ( 'minutes' , false ) ;
312
+ }
302
313
}
303
314
304
315
if ( angular . isDefined ( invalidSeconds ) ) {
305
316
$scope . invalidSeconds = invalidSeconds ;
317
+ if ( secondsModelCtrl ) {
318
+ secondsModelCtrl . $setValidity ( 'seconds' , false ) ;
319
+ }
306
320
}
307
321
} ;
308
322
@@ -425,6 +439,18 @@ angular.module('ui.bootstrap.timepicker', [])
425
439
}
426
440
427
441
function makeValid ( ) {
442
+ if ( hoursModelCtrl ) {
443
+ hoursModelCtrl . $setValidity ( 'hours' , true ) ;
444
+ }
445
+
446
+ if ( minutesModelCtrl ) {
447
+ minutesModelCtrl . $setValidity ( 'minutes' , true ) ;
448
+ }
449
+
450
+ if ( secondsModelCtrl ) {
451
+ secondsModelCtrl . $setValidity ( 'seconds' , true ) ;
452
+ }
453
+
428
454
ngModelCtrl . $setValidity ( 'time' , true ) ;
429
455
$scope . invalidHours = false ;
430
456
$scope . invalidMinutes = false ;
0 commit comments