【发布时间】:2015-07-16 20:08:19
【问题描述】:
假设一个给定的形式,例如<form name="myForm">,使用一个简单的手表就很容易观察有效性、错误、脏状态等:
$scope.$watch('myForm.$valid', function() {
console.log('form is valid? ', $scope.myForm.$valid);
});
但是,似乎没有一种简单的方法可以查看此表单中的任何给定输入是否已更改。像这样深入观看,不起作用:
$scope.$watch('myForm', function() {
console.log('an input has changed'); //this will never fire
}, true);
$watchCollection 只深一层,这意味着我必须为每个输入创建一个新手表。不理想。
什么是一种优雅的方式来观察表单的任何输入变化,而不必求助于多个观察,或者在每个输入上放置ng-change?
【问题讨论】:
-
该问题中的指令解决方案有效,但这不是我的想法(即不优雅,因为它需要模糊才能工作)。理想情况下,我希望它以类似的方式工作,即在子输入适当更改后,Angular 在内部立即将表单设置为 $valid 或 $error。
标签: angularjs forms angularjs-watch