ngModelController 파싱 파이프 라인의 동작이 각도 1.2와 1.3 사이에서 변경된 것으로 보입니다. 이제 모든 $error
객체에 'parse'
이라는 새 유효성 검사 키가 추가 된 것을 볼 수 있으며, 파서 중 하나가 undefined를 반환하면 이미 설정되었을 수있는 다른 모든 유효성 검사 키를 재정의하거나 바꿉니다. 예를 들어각도 1.3의 새로운 '구문 분석'유효성 검사 키의 목적은 무엇입니까?
는, 여기 각도 1.2.23에서 동작하는 예제입니다 - 범위를 벗어난 숫자를 입력하십시오 :
이http://jsfiddle.net/8doq0saf/5/
1.3 RC에서 실행 같은 일이 다른 결과를 제공합니다
를http://jsfiddle.net/1t52s9b2/4/
이 변경 사항에 대한 문서를 아직 찾을 수 없습니다. 구문 분석 키의 용도는 무엇이며 이전 코드를 다시 사용하려면 코드를 어떻게 변경해야합니까?
angular.module('app', []).directive('number', function() {
return {
require: 'ngModel',
link: function (scope, elem, attrs, ctrl) {
// valid number
ctrl.$parsers.push(function (value) {
var valid = angular.isUndefined(value) || value === '' || isFinite(value);
ctrl.$setValidity('number', valid);
return valid
? angular.isUndefined(value) || value === '' ? undefined : Number(value)
: undefined;
});
ctrl.$parsers.push(function (value) {
if (!angular.isDefined(attrs.minNumber)) {
return value;
}
var valid = angular.isUndefined(value) || Number(value) >= Number(attrs.minNumber);
ctrl.$setValidity('minNumber', valid);
return valid ? value : undefined;
});
ctrl.$parsers.push(function (value) {
if (!angular.isDefined(attrs.maxNumber)) {
return value;
}
var valid = angular.isUndefined(value) || Number(value) <= Number(attrs.maxNumber);
ctrl.$setValidity('maxNumber', valid);
return valid ? value : undefined;
});
}
};
});
예를 들어 실제로 새로운'$ validators' 파이프 라인을 사용해야합니다. 'ctrl. $ validators.minNumber = function (val) {/ * ... * /}' – JJJ
고마워, 나는이 새로운 기능에 대해 전혀 몰랐다. –