3
votes

AngularJS: remplacez le séparateur décimal par une virgule

J'espère avoir une solution pour cela. J'utilise angular1.4 .

Je souhaite afficher l'heure en nombres décimaux (séparés par des virgules car les utilisateurs se trouvent en Allemagne-Europe).

Par exemple, 5 minutes sont attendues à afficher comme:

5min = (5/60) = 0,08 (2 décimales)

Puis je suis tombé sur cette solution: Filtre de nombre AngularJS . Cependant, le résultat apparaît en décimal, que puis-je ajouter à ce filtre de canal ci-dessous, pour changer / remplacer le décimal en virgule?

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

Au cas où vous auriez besoin de clarté, dites-le-moi. p>


0 commentaires

3 Réponses :


2
votes

Consultez la documentation de $ locale service.

Voici une liste de paramètres régionaux dans le code source.

L ' exemple qu'ils utilisent pour les paramètres régionaux pris en charge est en fait pour Allemagne: ~).

Btw, dans la documentation AngularJS, il y a un bouton en haut de chaque page qui dit [afficher le code source] en haut de chaque page.


3 commentaires

Merci @Saylestyler. Mais pour l'instant, le projet n'inclut pas ce service et cela peut prendre du temps avant que mon PO le fasse (un projet avec beaucoup de restrictions / bureaucraties), y a-t-il un autre moyen de travailler uniquement avec ce composant?


J'ai donc trouvé un autre moyen de le faire sans service de localisation. J'ai ajouté cette réponse dans une situation étrange où le client ne veut pas utiliser les services locaux (comme mon cas). stackoverflow.com/a/55261028/6561825


incroyable, excellente solution



2
votes

Pour modifier les séparateurs utilisés par le filtre numérique AngularJS, incluez l'ensemble de règles de localisation approprié tel que angular-locale_de-de.js .

Il existe deux approches pour fournir des règles de localisation à AngularJS :

Pour plus d'informations, voir

La 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>    


1 commentaires

J'ai ajouté cette réponse dans une situation étrange où le client ne veut pas utiliser les services locaux (comme mon cas). stackoverflow.com/a/55261028/6561825



0
votes

J'ai donc trouvé un autre moyen de le faire sans service de localisation. J'ai ajouté ce tube

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';
    }
});

Où l'entrée provient de la durée.

J'espère que cela aidera quelqu'un là-bas.


0 commentaires