我编写了测试过滤器,必须返回常量数据。
mainApp.filter('dateParser', function () {
return function (param) {
return [{id:1,day:'23.07.17'},{id:2,day:'22.07.17'}];
};
});
然而,当我想那样的时候:
<td ng-repeat="crrDay in studentOne.daysList|dateParser">
{{day.currentVal}}
</td>
我收到这些数据,但在控制台中出错:
Error: $rootScope:infdig
Infinite $digest Loop
请告诉我为什么会这样?
更新 完整过滤器
mainApp.filter('dateParser', function () {
console.log(this);
return function (param) {
var parse, sorted, result = [], parsedArray = [];
for (var i = 0; i < param.length; i++) {
parse = param[i].day.split('.');
parsedArray[i] = {
'id': param[i].id,
'day': parse[0],
'month': parse[1],
'year': parse[2]
};
}
sorted = _.sortBy(parsedArray, ['year', 'month', 'day']);
for (i = 0; i < sorted.length; i++) {
result[i] = {
id:sorted[i].id,
day: sorted[i].day + '.' + sorted[i].month + '.' + sorted[i].year
};
}
return result;
};
});
答案 0 :(得分:1)
您正在函数内返回函数,将过滤器更改为
username
mainApp.filter('dateParser', function () {
return [{id:1,day:'23.07.17'},{id:2,day:'22.07.17'}];
});
在此无效。
修改强>
如果您需要接受一个参数,请按照这样做,
function(param)