我有一个格式化日期的指令.当输入格式出错时,它应该返回错误信息,例如ng-invalid.现在它可以在这种情况下设置ng-invalide,但如果输入格式错误,它还设置ng-valid-parse.在我看来,由于格式出错,它不是valide.
所以这里有我的问题:如何设置ng-valid-parse?
myDirectives.directive('myDateFormat',function ($window) { 'use strict'; return { require: 'ngModel',restrict: 'A',link: function (scope,elm,attrs,ctrl) { // other codes ... ctrl.$parsers.unshift(function (viewValue) { var date = moment(viewValue,dateFormat); if(date && date.isValid()){ return date.toDate(); }else{ ctrl.$setValidity('myDateFormat',false); return ""; // or it should return false here? } }); } }; });
谢谢 !
解决方法
当我在5个月后回顾我的问题时,我发现了类似的问题
How do ng-invalid-parse gets added to form?.
即使我将有效性设置为false:ctrl.$setValidity(‘myDateFormat’,false);,但是$parsers返回一个非未定义的对象.这意味着解析有效,因此设置了ng-valid-parse.