유효성 검사기가 호출되고 예상대로 true/false를 반환합니다. 그러나 유효성 검사기가 false를 반환하는 경우에도 ng-messages가 제대로 작동하려면 html이 "ng-invalid"대신 "ng-valid"클래스를 예상대로 표시합니다. 표준 "필수"오류를 사용할 때 문제는 없지만 사용자 정의가 작동하지 않습니다.
디버깅시 $ 오류가 필수로 업데이트되지만 daysofmonth로 업데이트되지 않는 것으로 나타났습니다.
나는 다음과 같이 보이는, 사용자 정의 유효성 검사기, daysofmonth가있는 구성 요소를 만들었습니다
<form name="form">
<div>
<input name="daysofmonth" ng-model="ctrl.daysOfMonth">
</div>
<ng-messages for="form.daysofmonth.$error">
<ng-message when="daysofmonth">Please enter valid days.</ng-message>
</ng-messages>
</form>
어떤 도움을 주시면 감사하겠습니다 :
this.ngModel.$validators.daysofmonth = function(modelValue) {
modelValue = modelValue || '';
let pieces = modelValue.split(',');
let isValid = true;
pieces.forEach(function(piece) {
let numberValue = parseInt(piece, 10);
if (isNaN(numberValue)) {
if (piece.trim() && piece.trim() !== 'L') {
isValid = false;
}
} else if (numberValue < 1 || numberValue > 31) {
isValid = false;
}
});
return isValid;
};
HTML처럼 보인다!