我有这样的自定义排序过滤器:
.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几乎相同,但是如果sort选项是IP,我会将IP从字符串解析为数字。但是当我使用过滤器时,我得到
未捕获的错误:[$ rootScope:infdig]达到10个$ digest()迭代。 流产!
但是当我使用angular的orderBy函数时,一切都很好,所以问题出在我的sort函数内部。请帮助我,因为我迷失了方向,无法理解我在做什么错