我有以下表格。
我面临的几个问题:
1 - 我无法使用$pristine
检查表单上的console.log($scope.myFirstForm.$pristine);
我看到错误:`无法读取属性' $ prestine'未定义的'。
根据我的代码,这实际上是可能的,即当输入字段嵌套在几个div标签中时使用?
2 - 要清除我当前必须单独执行每个字段的字段,是否可以在表单级别清除所有输入字段?
<form name="myFirstForm">
<div class="row">
<div class="large-12 medium-12 small-12 columns">
<input ng-model="main.pToAdd" type="text"/>
</div>
</div>
<div class="row homeTopBackgroundColor">
<div class="large-12 medium-12 small-12 columns">
<h5>Room</h5>
</div>
<div class="row large-12 medium-12 small-12 columns">
<input ng-model="main.o1ToAdd" type="text" />
</div>
</div>
<div class="row">
<div class="large-12 medium-12 small-12 columns">
<input ng-model="main.opToAdd" type="text"/>
</div>
</div>
</form>
解决: 在我的路线文件中,我指定了一个控制器(一页上有2个控制器)。我正在检查子范围,而不是父母,因此没有找到。所以我删除了路径文件中控制器的设置,并在HTML的所需位置指定了它。
答案 0 :(得分:1)
首先,控制器中包含的表单将自动位于该控制器的范围内。
表单中包含的输入是表单的一部分,无论它是如何嵌套的。 (使用名称attr来验证它们..为它们分配错误和状态)
将表单设置为pristine状态将清除甚至验证..将您的案例中的主对象设置为{}将清除所有输入字段。
`无法读取属性&#39; $ prestine&#39;未定义的 - &gt;可能是因为您在视图中分配表单之前在控制器中调用它。点击任何按钮尝试相同的事情不应该给出相同的答案。