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