更新:我添加了一个自定义指令,该指令允许我使用动态生成的名称访问输入,但是$ valid仍未定义。
我对Angular刚起步(尝试从jQuery切换),但是我觉得它很棒,但是我已经花了好几个小时才解决这个问题。
我要实现的UI的工作流是让用户单击一个步骤,然后显示一个输入字段,他必须填写该字段(需要验证,因此我尝试使用ng-required / ng-minlength)。
如果通过验证,则应显示一个勾号图标,然后以相同的方式激活下一步。
现在的问题是我可以访问form元素,但是我得到的对象是DOM对象,并且不包含$ valid属性,我需要检查该属性以检查表单/字段是否有效。
17:20行是:
console.log($scope.step1); //undefined
console.log(step1); //dom object
console.log(step1.value); //dom object
console.log(step1.value.$valid); //undefined
我一直在谷歌上搜索很多问题,所以我说我应该可以通过$ scope变量访问表单,但是不幸的是,尽管可以通过简单的变量名“ step1”(动态生成)访问表单名称)。我也可以访问“值”命名字段,但是它仍然只是DOM对象,因此没有$ valid可用。
JSFiddle:http : //jsfiddle.net/Iber/vtvnquee/
我的问题是:
我真的想了解Angular,因为它似乎是大型应用程序的合适框架,也是我的理想之选。
angular中的表单验证取决于两件事:
您的表单(或ng-form)元素必须具有“名称”属性。
<form name="myform">
您的输入(或选择)字段必须具有“名称”属性和ng-model。
<input type="text" name="name" ng-model="name" />
表单和输入字段需要name属性的原因是,这就是您在$ scope上查找模型并执行客户端验证的方式。
例如
$scope.myform.name.$error.required
$scope.myform.name.$valid
$scope.myform.name.$invalid
[编辑]
我发现您已经在提琴演奏中遵循了这些准则。
之所以不起作用,是因为name属性不能是插值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句