amDateFormat забивает amTimezone в AngularJS - PullRequest
0 голосов
/ 15 февраля 2019

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

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

Этот код выводит: «02/04/2019 01:42 PM»

Когда я запускаюприведенный выше код без фильтра 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;
            }])

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

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

1 Ответ

0 голосов
/ 15 февраля 2019

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

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

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

...