在angularjs中深入查看集合时获取索引

在angularjs中深入查看集合时获取索引,angularjs,Angularjs,我有以下代码: $scope.$watch('myData', function (newValue, oldValue) { console.log('oldValue=' + oldValue); console.log('newValue=' + newValue); //do something }, true); 当我更新myData集合内的属性时,它执行得很好,但在newValue和oldValue中,我得到了集合。是否有办法

我有以下代码:

$scope.$watch('myData', function (newValue, oldValue) {
        console.log('oldValue=' + oldValue);
        console.log('newValue=' + newValue);
        //do something
    }, true);

当我更新myData集合内的属性时,它执行得很好,但在newValue和oldValue中,我得到了集合。是否有办法更改项目的索引?

如果由于您收藏的所有项目都已删除而触发了
$watch
,该怎么办?在这种情况下,您希望得到什么索引

或者,如果由于
拼接
在同一操作中删除一些项目并添加一些其他项目而触发,该怎么办

或者,如果由于集合中的多个项发生了更改而触发了它,该怎么办

我想解释的是,当你在一个对象数组上有一个深度
$watch
时,
$watch
可能会因为许多不同的原因被触发,在你的问题中,你似乎假设
watch
会被触发,因为一个项目发生了变化,这不一定是真的,许多其他事情本可以改变

您可以使用
$watch
函数的参数中提供给您的newValue和oldValue来计算已发生的更改,这样,如果更改是其中一个项目已更改,您将能够找到它是哪一个以及它的索引是什么