这是angular-resource variable / object
表示表单数据的范围:
$scope.form = { name: 'bob', email: 'bob@bobs.com' }
我可以通过各种方式观察name
变量的变化.
$scope.$watch('form.name', function(newVal) { if(newVal) { alert(newVal) } });
如果更改了任何文件,可以使用什么方法 - 名称,电子邮件或任何scope.form可能有的?
我的目的是根据用户在表单上更改某些内容的事实禁用或启用我的表单"保存".
还有第三个参数$watch()
可以检查对象是否相等(深度监视).
$scope.$watch('form', function(newVal) { //watch the whole object if(newVal) { alert(newVal); } }, true); //pass "true" here.
为了进一步完善我的答案,这两种方法在这种情况下产生相同的结果:在这里进行现场演示(点击).但是$watchCollection
很浅,不会看任何嵌套的变化.
$scope.$watch('form', function(newForm, oldForm) { console.log(newForm.name); }, true);
或者:( 不是深表)
$scope.$watchCollection('form', function(newForm, oldForm) { console.log(newForm.name); });