每当我的表单中的任何非只读输入发生更改并且表单有效时,我都想做某些操作。假设,我的表格看起来像
<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
,我都想做点什么,只要input.a
有效input.b
。我试过$watch(input)
了,但没有用。看着它的所有成员确实如此,但感觉很愚蠢。添加ng-change
到所有字段感觉更好,但仍然很愚蠢(非 DRY)。什么是正确的方法?
另一个问题是如何确定输入是否有效。如果我有一个按钮,我可以简单地做
<button ng-click="doIt()" ng-disabled="form.$invalid">
但我怎样才能访问form.$invalid
控制器(它不包含在$scope
)?