首页 > 解决方案 > 使用带有ng-repeat的自定义排序时Angularjs无限摘要错误

问题描述

我有这样的自定义排序过滤器:

.filter('sortScanDevs', function () {
  return function (devices, option, reverse) {
    if (option === 'ipAddress') {
      return devices.sort(function(a, b) {
        var first = reverse ? b : a;
        var second = reverse ? a : b;

        return getIpAsNum(first.ipAddress) - getIpAsNum(second.ipAddress);
      });
    } else {
      return devices.sort(function(a, b) {
        var first = reverse ? b : a;
        var second = reverse ? a : b;

        return ('' + first.attr).localeCompare(second.attr);
      })
    }

    function getIpAsNum(ip) {
      return +ip.split('.').join('');
    }

  }
})

它的作用与 orderBy 的作用几乎相同,但如果排序选项是 IP,我将 IP 从字符串解析为数字。但是当我使用过滤器时,我得到

未捕获的错误:[$rootScope:infdig] 达到 10 个 $digest() 迭代。中止!

但是当我使用 Angular 的 orderBy 函数时,一切都很好,所以这个问题在我的排序函数中。请帮助我,因为我已经失去理智试图了解我做错了什么

标签: angularjs

解决方案


推荐阅读