我正在使用AngularJS TypeScript MomentJS来编写一个指令,该指令验证输入是否为写日期格式。
以下是指令
declare function moment(x: any,y:any);
((): void => {
'use strict';
function validDate(): ng.IDirective {
var directivedate = <ng.IDirective>{
restrict: 'AE',
require: 'ngModel',
scope: true,
link: link
};
function link(scope: ng.IScope, elm: ng.IAugmentedJQuery, attrs, ctrl: ng.INgModelController) {
ctrl.$parsers.unshift(function(viewValue) {
dateFormat(viewValue);
});
ctrl.$formatters.unshift(function(viewValue) {
dateFormat(viewValue);
});
var dateFormat = function(viewValue) {
var val = moment(viewValue, "DD/MM/YYYY").isValid();
ctrl.$setValidity('validDate', val);
}
}
return directivedate;
}
angular.module('validDate', []).directive('validDate', validDate);
})();
我的问题是,如果我在console.log val中它是正确的true或false,但$ setvalidity根本不起作用。
关于为什么会这样的任何想法。
由于