Javascript AngularJS:动态应用到输入字段时出错
我有从JSON动态生成的html,我想实现一些验证逻辑 为了澄清,以下是一个示例:Javascript AngularJS:动态应用到输入字段时出错,javascript,json,angularjs,validation,Javascript,Json,Angularjs,Validation,我有从JSON动态生成的html,我想实现一些验证逻辑 为了澄清,以下是一个示例: <div ng-switch on="field.type" ng-hide="{{ field.hide }}"> <div ng-switch-when="input" class= "col-md-6" ng-class="{'has-error': reqField(field.name, entity[field.name]) }"> <input
<div ng-switch on="field.type" ng-hide="{{ field.hide }}">
<div ng-switch-when="input" class= "col-md-6" ng-class="{'has-error': reqField(field.name, entity[field.name]) }">
<input
ng-model="entity[field.name]" id="{{field.name}}" class="form-control"
type="text" ng-style="setStyle(field.style)" ng-change="{{field.change}}" />
</div>
</div>
因此为了澄清,ng开关中的例如:“field.type”就是JSON中的类型——我们可以根据不同的JSON键/值确定要显示内容的html div
这意味着一个html div可能用于生成数百个输入字段,因此这需要是动态的
我想在必填字段为空时添加验证。目前,我已经尝试添加指向我的函数reqField的ng类={has error':}。但是,由于该函数会针对每个类型为:jsonselect的字段启动,因此该函数会检查该字段是否为空,这在速度和可用性方面都非常低效
您在上面看到的javascript或多或少是reqField函数用来检查字段是否为空的逻辑,效率非常低,因为我们要检查数百个字段
我想使用的是类似于ng required={{field.required}}的内容,并在JSON中创建一个新的键/值,以确定我是否希望此字段是如下所示的必填字段排序:
{
"title": "Json Title",
"id": "j_id",
"groupfields": [
{
"name": "jsonname",
"title": "JSON Title",
"type": "jsonselect",
"namevalue": "jsonvalue",
"combo": "jsondropdown",
"change" : "jsonChanged()"
},
{
"name": "jsonEmail",
"title": "JSON Email Address",
"type": "display",
"required": true
},
{
"name": "jsonPhone",
"title": "JSON Phone Number",
"type": "display",
"required": true
}
]
},
~然后以某种方式将该信息传递给ng类={has error':},以便我们可以高亮显示-或者在知道字段已填充/或为空时执行任何我们想要的操作。表单验证内置于AngularJS中。ng required指令将向表单对象添加错误状态,以便您可以像这样设置ng类:
if (entityName) {
return false;
} else {
return true;
}
{
"title": "Json Title",
"id": "j_id",
"groupfields": [
{
"name": "jsonname",
"title": "JSON Title",
"type": "jsonselect",
"namevalue": "jsonvalue",
"combo": "jsondropdown",
"change" : "jsonChanged()"
},
{
"name": "jsonEmail",
"title": "JSON Email Address",
"type": "display",
"required": true
},
{
"name": "jsonPhone",
"title": "JSON Phone Number",
"type": "display",
"required": true
}
]
},
<div ng-switch-when="input" class= "col-md-6" ng-class="{'has-error': myForm[field.name].$error.required }">
<form name="myForm">
...
<input name="{{field.name}}" ng-required="field.required">