javascript - 当我按相同的属性进行过滤时,如何查看已过滤的对象数组中属性的变化?

标签 javascript angularjs

我该怎么做:

$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/

相关文章:

html - ng-class 和 css on tr ng-repeat

javascript - 在窗口调整大小时调整子 div 元素的大小以适应父 div

javascript - 从字符串 : 'matrix(1, 0, 0, 1, 3, 5)' 中获取最后 2 个数字

javascript - 在鼠标滚轮滚动时更改选择输入中的所选元素

angularjs - 使用 $resource 发送 ETag

php - 如何将值插入MySQL表的特定空白列?

javascript - 使用 d3.create 创建和附加分离元素

javascript - 动态加载jquery

javascript - 使用 Javascript 编辑打开的 HTML 页面

c# - 从 Angular JS 调用 Web API 错误 : The 'Access-Control-Allow-Origin' header contains multiple values, Origin is not allowed access