Partage
  • Partager sur Facebook
  • Partager sur Twitter

angularjs controller,services,et http

recupération d'un variable

    27 septembre 2016 à 16:09:33

    bonjour voila ,

    c'est tout bete mais jai créé un controller qui fait appel a un service , et ce service effectue une requete (tres simple) vers l'api tmdb...

    bref j'aimerais juste récupéré le resulta de la requete dans mon controller afin de pouvoir l'afficher dans la vue ... 

    voici le code : 

    var app = angular.module("exo",[]);
    
    app.factory("factoryExample", function($http){
        return{
    
            service1: function(){
              $http({
                      method:'GET',
                      url:'https://api.themoviedb.org/3/search/movie?api_key=36edf84967187a118d22c015602bed76&language=fr-FR&query=deadpool'
                    })
              .success(function(data){
                          console.log(data.results[1].title);
                   // data et la variable que je recupéré!!! 
                                        })
              .catch(function(response){
                            console.log(response);
        
                                        });
    
                            },
    
        service2: function(){
          return 'flo';
        }
    
        }
    });
    
    
    app.controller('cineCtrl',function($scope,factoryExample){
    
    $scope.données = factoryExample.service2(); 
    //pas de probleme le resultat est retourné
    
    // mais a cette appel la je fais comment pour récupéré le data de la requete http ??? 
    
    factoryExample.service1();
    
    
    });



    • Partager sur Facebook
    • Partager sur Twitter
      30 septembre 2016 à 10:29:54

      Hello, après ton factoryExample.service1() il te manque : 

      .success(function(data) {
        $scope.var= data; //data contient le résultat de ta requête
      console.log(data)
      })
      .error(function(data) {
        console.error(data); // te permet de lire l'erreur s'il y en a une dans la console
      })
      .finally(function() {
        console.log("finally clause"); //s'exécute dans ts les cas
      })



      • Partager sur Facebook
      • Partager sur Twitter
        30 septembre 2016 à 13:26:33

        Hello, attention on ne devrais plus utiliser les success et error comme avant. Maintenant c'est conseiller de le faire comme ça :

        service1: function(){
        $http({
           method:'GET',
           url:'url'
        }).then(
          function (response){//SUCCESS
        },
          function (reSponse){//ERROR
        })
        
        }

        J'espère que ça va t'aider. A+

        Jo

        • Partager sur Facebook
        • Partager sur Twitter
          30 septembre 2016 à 14:40:07

          Effectivement, 

          Si tu changes ton service, il faudra adapter ton contrôleur :

          .then(function(data) {
            $scope.test= data; 
           },function(error){ 
          console.log(error)// te remonte l'erreur
          });

          Cela dit pour être complet l'utilisation du $scope n'est plus conseillée

          var vm= this;
          vm.test 

          qui dans ta vue devient 

          {{cineCtrl.test}}
          • Partager sur Facebook
          • Partager sur Twitter

          angularjs controller,services,et http

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown