2017-10-14 16 views
0

Je développe un magasin qui supporte beaucoup de devises différentes. Sur le backend, tout l'argent est en USD, curreny sera converti du côté client tout en affichant la page en fonction de l'IP de l'utilisateur.Conversion monnaie monétaire sur le front avec angularJS

Im se demandant si je devrais utiliser:

  1. service qui utilisera $http appel pour recueillir des taux de change en cours à partir de la page par exemple de Google et après que tous les éléments sont affichés, chargés puis commencer à convertir tous les prix à l'utilisateur déjà défini devise par défaut, cela ne devrait pas prendre longtemps.
  2. Personnalisé angularJS filter mais il ne peut pas appeler la demande de devise à chaque fois que l'information sur la devise doit être collectée avant le début du démarrage du filtre. Donc de toute façon je dois créer et exécuter une fonction, (service ou factory) et contraindre pour exécuter ce service avant que le filtre ne commence son travail. Mais en se basant sur le service de réponse this exécuter avant le filtre.

Laquelle de cette approche est la meilleure? Ou peut-être y a-t-il une meilleure façon de convertir la devise du côté client que je ne connais pas?

Répondre

1

créer un filter personnalisé est mieux, mais pas aussi dynamique. Donc, à moins que vous puissiez créer un service distinct $http qui pourrait obtenir vos tarifs de Google ou ailleurs, alors passez-le dans votre filter. Donc, fondamentalement, votre filter appelle un service qui lui donne ses variables pour la conversion.

+0

Oui mais le service ne doit être exécuté qu'une seule fois? Et la réponse de l'appel '$ http' doit être stockée dans par exemple' $ rootScope' ou '$ localForage' que j'utilise réellement dans ce projet mais je ne sais pas ce qui serait le plus rapide je finirais par faire des tests dessus . – BT101

+0

Vous pouvez définir une observable pour appeler votre service chaque fois qu'il y a un changement de débit. Donc, il est géré automatiquement – tobie