@@ -505,6 +505,32 @@ angular.module('validation.directive', ['validation.provider']);
505
505
*/
506
506
var focusElements = { } ;
507
507
508
+ /**
509
+ * Get Validation Result Object
510
+ * @param data
511
+ * @returns {
512
+ * result: Boolean, // is success or error
513
+ * message: String // tips
514
+ * }
515
+ */
516
+ function getResultObj ( data ) {
517
+ var res = { } ;
518
+ if ( data && data . length > 0 ) {
519
+ res = data [ 0 ] ;
520
+ if ( ! angular . isObject ( res ) ) {
521
+ res = {
522
+ result : res ,
523
+ message : ''
524
+ } ;
525
+ }
526
+ } else {
527
+ res = {
528
+ result : false ,
529
+ message : ''
530
+ } ;
531
+ }
532
+ return res ;
533
+ }
508
534
509
535
/**
510
536
* Check Validation with Function or RegExp
@@ -528,16 +554,16 @@ angular.module('validation.directive', ['validation.provider']);
528
554
var expression = $validationProvider . getExpression ( validator ) ;
529
555
var validationGroup = attrs . validationGroup ;
530
556
var valid = {
531
- success : function ( ) {
532
- validFunc ( element , attrs [ successMessage ] , validator , scope , ctrl , attrs ) ;
557
+ success : function ( message ) {
558
+ validFunc ( element , message || attrs [ successMessage ] , validator , scope , ctrl , attrs ) ;
533
559
if ( leftValidation . length ) {
534
560
return checkValidation ( scope , element , attrs , ctrl , leftValidation , value ) ;
535
561
} else {
536
562
return true ;
537
563
}
538
564
} ,
539
- error : function ( ) {
540
- return invalidFunc ( element , attrs [ errorMessage ] , validator , scope , ctrl , attrs ) ;
565
+ error : function ( message ) {
566
+ return invalidFunc ( element , message || attrs [ errorMessage ] , validator , scope , ctrl , attrs ) ;
541
567
}
542
568
} ;
543
569
@@ -550,12 +576,14 @@ angular.module('validation.directive', ['validation.provider']);
550
576
if ( expression . constructor === Function ) {
551
577
return $q . all ( [ $validationProvider . getExpression ( validator ) ( value , scope , element , attrs , validatorParam ) ] )
552
578
. then ( function ( data ) {
553
- if ( data && data . length > 0 && data [ 0 ] ) {
579
+ var resultObj = getResultObj ( data ) ;
580
+ var message = resultObj . message ;
581
+ if ( resultObj . result ) {
554
582
if ( validationGroup ) {
555
583
groups [ validationGroup ] [ ctrl . $name ] = true ;
556
584
setValidationGroup ( scope , validationGroup , true ) ;
557
585
}
558
- return valid . success ( ) ;
586
+ return valid . success ( message ) ;
559
587
} else if ( validationGroup ) {
560
588
groups [ validationGroup ] [ ctrl . $name ] = false ;
561
589
@@ -565,9 +593,9 @@ angular.module('validation.directive', ['validation.provider']);
565
593
setValidationGroup ( scope , validationGroup , true ) ;
566
594
} else {
567
595
setValidationGroup ( scope , validationGroup , false ) ;
568
- return valid . error ( ) ;
596
+ return valid . error ( message ) ;
569
597
}
570
- } else return valid . error ( ) ;
598
+ } else return valid . error ( message ) ;
571
599
} , function ( ) {
572
600
return valid . error ( ) ;
573
601
} ) ;
@@ -647,7 +675,7 @@ angular.module('validation.directive', ['validation.provider']);
647
675
var uid = ctrl . validationId = guid ( ) ;
648
676
649
677
/**
650
- * to have avalue to rollback to
678
+ * to have a value to rollback to
651
679
*/
652
680
var originalViewValue = null ;
653
681
0 commit comments