我的过滤错误

时间:2017-10-23 02:06:41

标签: javascript angularjs

我编写了测试过滤器,必须返回常量数据。

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;
    };
});

1 个答案:

答案 0 :(得分:1)

您正在函数内返回函数,将过滤器更改为

username

mainApp.filter('dateParser', function () { return [{id:1,day:'23.07.17'},{id:2,day:'22.07.17'}]; }); 在此无效。

修改

如果您需要接受一个参数,请按照这样做,

function(param)