【发布时间】:2014-05-06 21:19:42
【问题描述】:
每当我的表单中的任何非只读输入发生更改并且表单有效时,我都会执行某些操作。比方说,我的表单看起来像
<form name="form" novalidate>
<input ng-model='input.a' required/>
<input ng-model='input.b' required/>
<input value='{{output.p | number: 2}}' readonly/>
<input value='{{output.q | number: 2}}' readonly/>
</form>
现在,只要input.a 和input.b 有效,只要input 发生任何变化,我就想做点什么。我试过$watch(input),但没有用。看着它的所有成员确实如此,但感觉很愚蠢。将ng-change 添加到所有字段感觉更好,但仍然非常愚蠢(非 DRY)。正确的方法是什么?
另一个问题是如何确定输入是否有效。如果我有一个按钮,我可以做的很简单
<button ng-click="doIt()" ng-disabled="form.$invalid">
但是如何在控制器中访问form.$invalid(它不包含在$scope 中)?
【问题讨论】:
标签: javascript angularjs forms angularjs-validation