IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AngularJS Discussion :

jsonp et calculs mathématiques sur le résultat


Sujet :

AngularJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut jsonp et calculs mathématiques sur le résultat
    Bonjour,

    Je cherche à récupérer 2 json puis à faire la soustraction entre chacun d'eux sur beaucoup de propriétés.

    Savez vous si c'est possible ?

    Actuellement, je fait quelque chose de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    var modules = [];
     
    var app = angular.module('test', modules);
     
     
     
    app.controller('DataCtrl', ['$scope', '$http', function ($scope, $http) { 
    	$scope.checkJson1 = function() {
    		$http.jsonp("http://url1?callback=JSON_CALLBACK").
    		success(function(data) {
    			$scope.p1 = data;
    		}).
    		error(function (data) {
    			$scope.data = "Request failed";
    		});
    	};	
    	$scope.checkJson2 = function() {
    		$http.jsonp("http://url2?callback=JSON_CALLBACK").
    		success(function(data) {
    			$scope.p2 = data;
    		}).
    		error(function (data) {
    			$scope.data = "Request failed";
    		});
    	};	
     
    	// Ne fonctionne pas
    	alert($scope.p1.value1);
    	alert($scope.p2.value1);
    }])
    Les appels JSON fonctionnent bien et renvoient bien un JSON (que je peux afficher dans la vue si je veux)
    le probleme c'est que je n'arrive pas accéder à mon objet stocké dans mon scope dans mon controlleur et en dehors de la méthode (afin de faire mes calculs). Je m'y prend mal je pense.

    Pourriez vous m'éclairer ?

    merci

  2. #2
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Bonjour,

    Lorsque tu fais un alert sur ces variables au moment où tu le fais, elles ne sont pas encore résolues et c'est normal. Si tu déplace les deux alert à l'intérieur de tes appel $http, là elle seront alimentées.
    Si tu mets des points d'arrêt dans ton controleur et que tu vois l'ordre d'exécution de chacune de tes instructions en debug, tu comprendrais pourquoi
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  3. #3
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    Merci Slim.

    Oui, j'ai vi que dans mes appels, j'ai bien les variables.

    Mon probleme c'est que j'ai deux appels http différents et que je souhaite faire des opération (et les mettres à jour à chaque fois qu'un de ces appels changent.

    En gros, je pensais mettre différentes variable dans ma vue ({{soustraction1}}, {{soustraction2}}, {{soustraction3}} ...) et mettre à jour ces calculs à chaque changement.

    Mon probleme c'est que vu que c'est deux appels distincts, j'ai jamais les deux valeurs en même temps si ?

    Comment faudrait t'il faire pour etre propre (et pour ne pas essayer de faire une soustraction si l'appel http n'a pas fonctionné ?

    merci

  4. #4
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    et bien tu peux encapsuler tes deux appels dans un service. D'ailleurs, les contrôleurs ne servent qu'au bind. Tu ne devrais pas avoir de logique "métier" dedans.
    Crée un service avec une méthode qui fait les deux appels http et les calculs du coup.
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  5. #5
    Membre émérite Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Par défaut
    J'ai essayé de faire un service mais je vois mal comment faire et surtout quoi faire dans mon service et comment interagir entre le controleur et le service.

    Au lieu de faire les deux appels $http.jsonp, je ferais un appel du style monService.getData() ?

    Vu que $http.json fonctionne en asynchrone, que doit retourner ma méthode getData ? Dois-je continuer à gérer le .then dans mon controleur ?

    Tu l'auras compris, je suis un peu pommé et trés débutant en angular.

    Merci pour ton aide

  6. #6
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    Citation Envoyé par pop_up Voir le message
    J'ai essayé de faire un service mais je vois mal comment faire et surtout quoi faire dans mon service et comment interagir entre le controleur et le service.
    Dans ton service, tu ne mets que les deux appels serveur et tes calculs. Ensuite, tu l'injecte dans le controleur et tu appelle ta methode pour enfin, lier le résultat à des variables.
    regarde du côté du chainage de promesses en AngularJS ($q.all).

    Citation Envoyé par pop_up Voir le message
    Au lieu de faire les deux appels $http.jsonp, je ferais un appel du style monService.getData() ?
    Vu que $http.json fonctionne en asynchrone, que doit retourner ma méthode getData ? Dois-je continuer à gérer le .then dans mon controleur ?
    Exactement. Mais il faudra faire un "then" lors de l'appel de la méthode du service. Car le service renverra une promesse ;-)
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calculs basés sur des formulaires et transfert des résultats
    Par Samy-DT dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/06/2014, 02h41
  2. [AC-2002] Calcul VBA sur le résultat de 2 SQL
    Par wushu29 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/04/2010, 11h39
  3. Réponses: 5
    Dernier message: 12/05/2009, 11h17
  4. Calcul ligne par ligne sur le résultat d'une requête
    Par CanardJM dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/04/2008, 13h06
  5. trier sur le résultat d'un calcul dans l'état
    Par crissud dans le forum IHM
    Réponses: 21
    Dernier message: 16/03/2007, 07h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo