我有一个这样的表格
<form name="myForm">
<input name="myEmail" type="email"/>
{{myForm.$invalid}}
</form>
我需要将输入字段与ng-model绑定,以正确验证表单。为什么AngularJs无法像这样验证这个表单?
即使我将属性 myForm.myEmail。$ invalid 存在,如果我使用ng-model绑定输入。为什么会这样?
如果验证仅存在于ngModel指令中,为什么angularjs会将值 myForm。$ invalid 赋予 false ?更好的回应不会未定义?
答案 0 :(得分:2)
为什么AngularJs无法像这样验证此表单?
因为验证仅在ngModel指令的上下文中有意义,因为这实际上允许通过向父表单指令控制器注册相应的模型控制器(ngModelController)来实现验证功能,该控制器协调验证功能。
检查源代码以了解输入指令的实现方式以及它们对ngModel控制器的作用:https://github.com/angular/angular.js/blob/71cf28cf06295e0936f706c048bc07e6c963acc4/src/ng/directive/input.js#L1708
答案 1 :(得分:0)
因为angular会验证模型,而不是html。如果你没有绑定到模型,那么,就角度而言,没有什么可以验证的。