Javascript angularjs中的形式变化与有效性

Javascript angularjs中的形式变化与有效性,javascript,angularjs,forms,angularjs-validation,Javascript,Angularjs,Forms,Angularjs Validation,每当表单中的任何非只读输入发生更改且表单有效时,我都希望执行某些操作。比如说,我的表格看起来像 <form name="form" novalidate> <input ng-model='input.a' required/> <input ng-model='input.b' required/> <input value='{{output.p | number: 2}}' readonly/> <inp

每当表单中的任何非只读输入发生更改且表单有效时,我都希望执行某些操作。比如说,我的表格看起来像

<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>

但是如何访问控制器中的
表单。$invalid
(它不包含在
$scope
)中?

您应该能够通过执行以下操作来访问
表单。$invalid

$scope.form.$invalid
请看这里:

要查看表单中的更改,您应该能够执行以下操作:

$scope.$watchCollection('input')

戴夫已经回答了你的第一个问题,但对于第二个问题,我有一个我认为更优雅的解决方案:

在控制器中,您已声明一个对象,例如:

$scope.forms = {};
然后,表单名称必须嵌套在该对象中:

<form name="forms.someForm">
    ...

这两种方法都有效,非常有效。但是根据你的链接,我不需要任何
setFormScope
(我没有做
$modal.open
不是这样的;只是一个带有基本ctrl键的基本页面),但它没有。有什么想法吗?
<form name="forms.someForm">
    ...
if($scope.forms.someForm.$invalid) {
    ...
}