amDateFormat забивает amTimezone в AngularJS

Мой код выглядит следующим образом с установленным пакетом угловых моментов:

<td data-ng-bind="'2019-02-04T13:42:06.927+00:00' | amTimezone:'America/Halifax' | amDateFormat: 'MM/DD/YYYY hh:mm A'"></td>

Этот код выводит: "04.02.2009, 13:42"

Когда я запускаю приведенный выше код без фильтра amDateFormat, я получаю: "Пн Фев 04 2019 09:42:06 GMT-0400"

Итак, я знаю, что каждый фильтр работает, но после некоторой отладки файла angular-moment.js preprocessDate назовет его тем, что забивает информацию о моем часовом поясе.

.filter('amDateFormat', ['moment', 'amMoment', 'angularMomentConfig', function (moment, amMoment, angularMomentConfig) {
                function amDateFormatFilter(value, format) {
                    if (isUndefinedOrNull(value)) {
                        return '';
                    }

                    var date = amMoment.preprocessDate(value);
                    if (!date.isValid()) {
                        return '';
                    }

                    return date.format(format);
                }

                amDateFormatFilter.$stateful = angularMomentConfig.statefulFilters;

                return amDateFormatFilter;
            }])

У меня preprocess установлен в null в моем angularMomentConfig моего файла angular-moment.js, но он выполняет createUTC() из moment.js в качестве функции препроцессора.

Я понятия не имею, как вызывается эта функция или именно это вызывает мою проблему, но любая помощь будет принята с благодарностью.

1 ответ

Я понял. Мы установили препроцессор в основной модуль, на который я не смотрел.

.constant('angularMomentConfig', {
    preprocess: moment.utc
  })

Удаление этого позволило ему работать правильно.

Другие вопросы по тегам