2013-10-06 1 views
0

J'utilise le service $ http pour appeler le serveur qui renvoie json data.howerver chaque fois que je demande les données json, le service $ http s'exécute plusieurs fois. Ne sachez pas ce qui s'est mal passé. aide de plz. merci d'avance. ci-dessous est mon code.

 var app = angular.module('Demo',[]); 

     app.config(function ($routeProvider) { 
     $routeProvider 
    .when('/users', 
    { 
     templateUrl: "users.html", 
     controller: "users" 
    } 

    ).when('/users/new', 
    { 
     templateUrl: 'new.html', 
     controller : 'newuser' 
    }).when('/users/:id/edit', 
    { 
     templateUrl: 'edit.html', 
     controller: 'edit' 
    }) 
    }); 


    app.controller('users',function($scope,$http){ 
    $scope.list_of_users = []; 
    $http.get('http://testing.com:3000  /users.json').success(function(data,status,header,config){ 
    angular.copy(data,$scope.list_of_users) 
    }) 
    }); 

    app.controller('newuser',function($scope,$http,$location){ 
    $scope.done = function(){ 
    var data = {user: {name: $scope.name}}; 
    $http.post("http://testing.com:3000/users.json",data).success(function(data,status,header,config){ 
     $location.path('/users'); 
    }).error(function(data,stauts,header,confi){ 
     }); 
     }; 
    }); 

    app.controller('edit',function($scope,$http,$routeParams,$location){ 
    $scope.name=""; 
    $http.get("http://testing.com/users/"+$routeParams.id +".json").success(function(data,status,header,config){ 
     console.log(data); 
     $scope.name = data['user']['name']; 
    }); 
    $scope.update = function(){ 
     var data = {user: {name: $scope.name}}; 
     $http.put('http://localhost:3000/users/$routeParams.id',data).success(function(data,status,header,config){ 
      $location.path("/users"); 
     }).error(function(data,status,header,config){ 

      }); 
    } 
    }); 
+0

s'il vous plaît envoyer Fiddle/Plunker + HTML, merci –

+0

Comment savez-vous qu'il s'exécute plusieurs fois? Aussi, plutôt que d'avoir un contrôleur séparé pour l'opération de portée, pourquoi ne pas en avoir un seul avec plusieurs fonctions? – ksimons

+0

Votre contrôleur 'newuser' a une instruction' $ location.path', qui changerait de route et appellerait le contrôleur 'users' qui a un autre appel http. – Chandermani

Répondre

1

La plupart likly vous avez défini votre contrôleur dans le routeProvider et dans le modèle actuall (ng-contrôleur). Cela le fait fonctionner plusieurs fois. Enlevez-en un et réessayez.

+0

Merci JoakimB ... tu as sauvé ma journée ... :) .. ça marche bien ... Merci à tous d'avoir répondu à cette question. – user2534381

Questions connexes