AngularJS 的日期显示 - 过滤器的成本是多少?

Date presentation with AngularJS - how costly is a filter?

我认为 angular 日期和货币过滤器非常巧妙,但我在网上看到一些评论说过滤器会对性能产生负面影响。我正在开发一个企业应用程序,它将处理所有不同类型的日期对象,我们希望根据用户设置以不同方式呈现格式。

根据我的阅读,直接在 DOM 中使用过滤器并不是最好的方法,所以我想我会把它提取到服务中。如您所知,angular 文档还有很多不足之处,似乎有很多不同的方法可以实现这一点。

最终我只想使用 angular 的内置日期过滤器来呈现来自各个页面上的有效负载的各种日期格式来格式化该日期。此外,我们对日期和时间都有独立的用户设置。日期格式的选项是:MM/dd/yyyydd/MM/yyyy。时间格式的选项是:HH:MM:SSH:MM:SS A

我倾向于在服务中使用内置的日期过滤器。我认为理想的答案只需要包含一些伪代码就可以让我继续。提前感谢您的宝贵时间。

此外 - 如果您需要更多信息或任何代码,请告诉我。不确定要在此处包含什么...

我发现我第一次尝试做错了什么。如果其他人正在寻找此主题,请使用以下代码:

app.service('DateTimeService', ['$filter', function ($filter) {

    var self = this
    init()
    return self

    function init () {
        self.formatter = $filter('date')
        self.formatDate = formatDate
        self.formatTime = formatTime
    }

    function formatDate (time) {
        return self.formatter(time, settings.dateFormat)
    }

    function formatTime (date) {
        return self.formatter(date, settings.timeFormat)
    }
}])

// in the controller
DateTimeService.formatDate(dateObject)