0

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

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

           });
   }
   });
4

1 回答 1

1

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

于 2013-10-06T07:59:50.393 回答