Javascript 检查Angular JS中是否修改了复杂范围变量

Javascript 检查Angular JS中是否修改了复杂范围变量,javascript,angularjs,Javascript,Angularjs,我有一个复杂的范围变量,如下所示 $scope.ComplexVariable={ PrimaryObjOne:{ SecondaryOne:'', SecondaryTwo:'' }, PrimaryObjTwo:{ SecondaryOne:'', SecondaryTwo:'' } } 是否有任何干净的方法来检查与此对象关联的任何属性(在我的示例中为二级)是否已修改。在

我有一个复杂的范围变量,如下所示

$scope.ComplexVariable={
      PrimaryObjOne:{
         SecondaryOne:'',
         SecondaryTwo:''
      },
      PrimaryObjTwo:{
         SecondaryOne:'',
         SecondaryTwo:''
      }
}
是否有任何干净的方法来检查与此对象关联的任何属性(在我的示例中为二级)是否已修改。在每个属性上添加一块$watch是可行的,但我想知道是否有更干净的方法可以做到这一点

$scope.$watch("ComplexVariable", function (oldVal, newVal) {
}, true);
末尾的true将监视整个对象是否有任何更改。

的第三个参数允许您使用对象相等而不是引用相等(这是默认值)来比较对象


这使用而不是
=
===

这很有帮助。谢谢
function objectChanged() {
  // ...
}

var useObjectEquality = true;

$scope.$watch('ComplexVariable', objectChanged, useObjectEquality);