$ http服务在控制器中执行多次

时间:2013-10-06 07:30:54

标签: angularjs

我使用$ http服务来调用每次请求json数据时返回json data.howerver的服务器,$ http服务正在执行多次。不知道出了什么问题.plz帮助。提前谢谢。下面是我的代码。

       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){

           });
   }
   });

1 个答案:

答案 0 :(得分:1)

最有可能在routeProvider和实际模板(ng-controller)中定义控制器。这使它运行多次。删除其中一个,然后重试。