我该怎么做:
$scope.$watch('item.completed', function(to, from){ …
结合此:
<li ng-repeat="item in items | filter:{completed: true}" ng-controller="ItemCtrl"> …
实时 plunker 示例:http://plnkr.co/edit/pdFkEmxyqrzS6mc2AYo2?p=preview
目前,当我更改 item
对象的 completed
属性时,$watch()
没有触发。
我怀疑它与过滤器弄乱了对象属性的引用有关,但我如何才能做到这一点呢?我也试过 $watch(…, …, true)
和 $watchCollection()
但都没有任何效果。
最佳答案
您可以监听范围销毁事件并从事件对象中获取值:
.controller('ItemCtrl', ['$scope', function($scope){
$scope.$on('$destroy', function(o){log(o.targetScope.item.name + '(' + o.targetScope.item.completed + '):destroyed')});
$scope.$watch('item.completed', function(to, from){
log(from + ' --> ' + to);
});
}]);
关于javascript - 当我按相同的属性进行过滤时,如何查看已过滤的对象数组中属性的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25695183/