我需要在预提交的表单上验证输入。我创建了一个指令来验证所述输入并相应地将“valid_amount”设置为 false 或 true。
问题出在表格上,我似乎无法评估'formTransfer.amount.$error.valid_amount'
,$error 不存在。关于可能是什么问题的任何想法?
表格的一部分
<form name='formTransfer' ng-submit='prepare( transfer )' >
<input amount name='amount' ng-model='transfer.amount' required='required' type='number'>
<span class='error' ng-show='formTransfer.amount.$error.valid_amount'>This is not valid valid_amount!</span>
和指令:
var AMOUNT_REGEXP = /^(\d*\.\d{1,2}|\d+)$/;
app.directive("amount", function() {
return {
require: "ngModel",
link: function(scope, element, attrs, ngModel) {
return ngModel.$parsers.unshift(function(viewValue) {
if (AMOUNT_REGEXP.test(viewValue)) {
ngModel.$setValidity("valid_amount", true);
viewValue;
} else {
ngModel.$setValidity("valid_amount", false);
undefined;
}
return console.log(ngModel);
});
}
};
});
我正在使用 HAML 和 Coffeescript,如果某些代码对澄清或发布原始代码没有意义,请告诉我。