Partage
  • Partager sur Facebook
  • Partager sur Twitter

angularjs recuperer async result

    26 août 2016 à 15:56:35

    Salut tout le mond,
    je suiscompletement bloqué depuis deux jours ! 
    j ai un  $scope.greeting[] c est une liste de coursier dans mon controlleur ! je veut obtenir la distance entre une origine (adresse de la commande) et une destination (adresse du livreur) et ce pour chaque livreur dans $scope.greeting[x].distance ! j ai fait ce code,le probleme est que je ne peut recuperer aucune des valeurs en dehors de la fonction callback de serviceDistanceMatrix  :
    var app = angular.module('PickleDispatch', ['ngMap']);
    app.controller('gestionLivreur',function ($scope, $http, $timeout) {
     
     
     $scope.getDistance = function() { 
             $scope.todosDests = [];
             $scope.comments;
            var is = 0;
            for(var tous =0;tous < $scope.greeting.length;tous++) {                              
                var dest = $scope.greeting[tous].latitude+","+$scope.greeting[tous].longitude;                                           
                var or = $scope.origin;
                var yv = 0;
                 $scope.googleCall(or,dest);
               alert($scope.test); // the value = undefined here
          
          
         
        
     
               
           
        }
        };
     
     
     
    $scope.googleCall = function(ori,desti) {
            var service = new google.maps.DistanceMatrixService();
            
        service.getDistanceMatrix(
      {
         
        origins: [ori],
        destinations: [desti],
        travelMode: google.maps.TravelMode.DRIVING,
        
        
      },  function (response, status) { 
       
        
      if (status == google.maps.DistanceMatrixStatus.OK) {
        var origins = response.originAddresses;
        var destinations = response.destinationAddresses;
        
        for (var k = 0; k < origins.length; k++) {
          var results = response.rows[k].elements;
         
          for (var l = 0; l < results.length; l++) {
            var element = results[l];
           
            var distance = element.distance.value;
           googleResult.products = distance;
           
     
            
            
            var duration = element.duration.text;
            var from = origins[k];
            var to = destinations[l];
            $scope.test = distance;
            alert($scope.test);           // i get the good value here
            $scope.$apply(); 
           
              
          }
        }
        
      }
     
     
    }); 
     
    };
     
    });
    Merci d avance pour votre aide ! 
    ps : j ai besoin d avoir ces donné stocké dans mon controller en non la vue html


    -
    Edité par RaphaëlBurroni 26 août 2016 à 15:59:12

    • Partager sur Facebook
    • Partager sur Twitter

    angularjs recuperer async result

    × 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