Преобразование угловых десятичных чисел в Firefox не работает - PullRequest
0 голосов
/ 25 июня 2018

Я программно применяю преобразование DecimalPipe, чтобы отформатировать число с двумя десятичными разрядами.Это работает в Chrome, IE и Edge.Он не работает в Firefox (60.0.2).

<input class="hour-input" min="0" max="24" type="number" step=".01" [(ngModel)]="hours">

export class HourComponent {
    hours: string;
    constructor(private numberPipe: DecimalPipe) { }

    formatHours() {
        this.hours = this.numberPipe.transform(this.hours, '1.2-2');
    }
}

Я думал, что post , в котором упоминается, что пакет intl может быть связан, но я ужеимпортировать этот полифилл.Также я понял, что Angular трубы больше не зависят от пакета intl начиная с Angular v5.Я использую стандартный шаблон LOCALE_ID .

Обратите внимание, что DecimalPipe работает в Firefox, если используется непосредственно в пользовательском интерфейсе:

{{hours | number: '1.2-2'}}

1 Ответ

0 голосов
/ 25 июня 2018

Похоже, что это не проблема с Angular, а скорее с обработкой входных чисел в Firefox.Ввод числа в Firefox очищает нули после десятичного разделителя по умолчанию.Похоже, что это давняя проблема без стандартного решения.

Похоже, это исправление бинтов может работать.Это включает в себя динамическое изменение типа ввода на число, когда пользователь печатает, но затем изменение его на текст при размытии.Хакерский.

Хотелось бы, чтобы Firefox реализовал стандартное переопределение или улучшенное значение по умолчанию для этого.

...