Simple Angular Date过滤器抛出TypeError异常

时间:2015-12-18 16:33:09

标签: angularjs angularjs-filter

首先,我必须指出过滤器有效,即使我得到了异常。例外是:

TypeError: Cannot read property 'substr' of undefined

我将过滤器注册到模块,据我所知,我可以在任何控制器中使用该过滤器。 ngRepeat位于一个控制器中,h3位于另一个控制器中。 ngRepeat用法有效,没有任何例外,但h3一个会抛出上面的那个,即使它以正确的格式显示日期。

过滤器

var Filter = function() {
    return function(jsonDate) {
        return new Date(parseInt(jsonDate.substr(6)));
    };
};
AppModule.filter("jsonToAngularDate", Filter);

用法

{{ order.Date | jsonToAngularDate | date:'dd.MM.yyyy' }}

两个地方都使用完全相同的用法。

更新

原来我得到了错误,因为我异步加载日期。如何避免错误?我应该抓取init函数中的数据吗?

1 个答案:

答案 0 :(得分:0)

将过滤器更改为空值帐户。

var Filter = function() {
    return function(jsonDate) {
        return jsonDate ? new Date(parseInt(jsonDate.substr(6))) : '';
    };
};
AppModule.filter("jsonToAngularDate", Filter);