说我正在深入观察AngularJS中的一个对象(我正在使用AngularJS 1.4)。如何检查对象的哪个属性触发$ watch?
答案 0 :(得分:1)
$scope.$watch('object',function(newVal,oldVal){
if(newVal!=oldVal){
if(Object.keys(newVal).length==Object.keys(oldVal).length){
$scope.keyChanged=comparteValue(newVal,oldVal);
}
}
},true)
function comparteValue(object1,object2){
var keyChange=null;
angular.forEach(object1,function(val,index){
if(val!=object2[index]){
keyChange=index;
}
});
return keyChange;
};
答案 1 :(得分:0)
$scope.simpleObject = { key1: 'someValue', key2:{subKey1:'test'}};
$scope.$watch('simpleObject.key1', function(newValue, OldValue){
// code here
});
$scope.$watch('simpleObject.key2.subKey1', function(newValue, OldValue){
// code here
});
但是如果你知道值的确切位置,那么你应该使用$ on,$ broadcasr& $发射