自定义表单验证:JSON
Custom form validation: JSON
我正在尝试使用 Angular 的 FormControl 验证 JSON 输入。
通常的方式(例如电子邮件)是:
<form name="form">
<textarea ng-model="data.email" type="email" name="email"></textarea>
</form>
Angular's FormControl 中有几个内置的 "Tokens"(电子邮件、号码、日期...)。
是否可以构建我自己的 JSON "Token"? < ... type="json">
如果没有,是否有更简单的验证方法?我不一定需要 AngularJS。
您可以为 json 构建它。但不会是type="json"
。它将是 type="text" validate-json
,然后您可以添加自定义指令。
app.directive('validateJson', function(){
return {
restrict: 'A',
require: 'ngModel',
link: function(s,e,a,c) {
c.$parsers.puch(function(value){
if(value is json) {
c.$setValidity('json', true);
} else {
c.$setValidity('json', false);
}
});
}
}
})
当然 javascript 中没有 value is json
。我实际上并不知道如何将字符串验证为有效 JSON。但这是一个概念。
现在可以使用ngMessages
报错
<form name="form">
<textarea ng-model="data.email" type="text" name="json_field" validate-json></textarea>
<div ng-messages="form.json_field.$error">
<div ng-message="json">Field is not valid JSON.</div>
</div>
</form>
我正在尝试使用 Angular 的 FormControl 验证 JSON 输入。
通常的方式(例如电子邮件)是:
<form name="form">
<textarea ng-model="data.email" type="email" name="email"></textarea>
</form>
Angular's FormControl 中有几个内置的 "Tokens"(电子邮件、号码、日期...)。
是否可以构建我自己的 JSON "Token"?
< ... type="json">
如果没有,是否有更简单的验证方法?我不一定需要 AngularJS。
您可以为 json 构建它。但不会是type="json"
。它将是 type="text" validate-json
,然后您可以添加自定义指令。
app.directive('validateJson', function(){
return {
restrict: 'A',
require: 'ngModel',
link: function(s,e,a,c) {
c.$parsers.puch(function(value){
if(value is json) {
c.$setValidity('json', true);
} else {
c.$setValidity('json', false);
}
});
}
}
})
当然 javascript 中没有 value is json
。我实际上并不知道如何将字符串验证为有效 JSON。但这是一个概念。
现在可以使用ngMessages
报错
<form name="form">
<textarea ng-model="data.email" type="text" name="json_field" validate-json></textarea>
<div ng-messages="form.json_field.$error">
<div ng-message="json">Field is not valid JSON.</div>
</div>
</form>