AngularJS: заменить десятичный разделитель на запятую - PullRequest
1 голос
/ 18 марта 2019

Я надеюсь, что получу решение для этого.Я использую angular1.4.

Я хочу отображать время в десятичных числах (через запятую, потому что пользователи находятся в Германии-Европе).

Например, 5min будет отображаться как:

5мин = (5/60) = 0,08 (2 знака после запятой)

Затем я наткнулся на это решение: Числовой фильтр AngularJS ,Однако результат отображается в десятичном виде, что я могу добавить к этому фильтру канала ниже, чтобы заменить / заменить десятичную запятую?

<span>{{ dr.duration/(60*60*1000) | number:2}}</span>

В случае, если вам нужна ясность, позвольте мне знать.

Ответы [ 3 ]

1 голос
/ 19 марта 2019

Ознакомьтесь с документацией для службы $ locale .

Вот список в исходном коде.

Пример , который они используют для поддерживаемых локалей, фактически относится к Германии: ~).

Кстати, в документах AngularJS вверху каждой страницы есть кнопка с надписью [просмотреть исходный код] вверху каждой страницы.

0 голосов
/ 20 марта 2019

Так что я нашел другой способ сделать это без службы локали. Я добавил эту трубу

app.filter('timeToDecimals', ($filter) => {
    return function (input) {
      let time = Number(input);
        if (!Number.isNaN(time)) {
            let number = time/(60*60*1000);
            return $filter('number')(number, 2).replace(".",",");
        } 
        else return '00,00';
    }
});

Где ввод от длительности.

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 19 марта 2019

Чтобы изменить разделители, используемые числовым фильтром AngularJS, включите соответствующий набор правил локали, например angular-locale_de-de.js.

Существует два подхода к предоставлению правил локали для AngularJS:

Для получения дополнительной информации см.

DEMO

<script src="//unpkg.com/angular/angular.js"></script>
<script src="//unpkg.com/angular-i18n/angular-locale_de-de.js"></script>
<body ng-app>
    <span><b>5min=(5/60)=</b>
      {{ 5/60 | number:2 }} hr (2 decimal places)
    </span>
</body>    
...