2016-07-05 60 views
0

我是一个创纪录的更新用返回一个字符串,并要显示的UI相同的字符串(成功更新)弹簧及AngularJS:对PUT方法

这里妾身是我的代码:

@RequestMapping(method = RequestMethod.PUT, value = "/update") 
    public @ResponseBody String update(@RequestParam("id") int id, @RequestParam("name") String name) { 
     employeeService.update(id, name); 
     return "updated successfully"; 

前端代码:

$scope.update = function(Employee) { 
        $http({ 
         method : 'PUT', 
         url : '/Employee/update', 
         params : { 
          id : Employee.id, 
          name : Employee.name 
         } 
        }).success(function(data, status, headers, config) { 
         $scope.updatedText = data; 
         $scope.updatedFlag = true; 
        }).error(function(data, status, headers, config) { 
         console.log("data.token " + data.token); 
        }); 
       }; 

这里有两个有趣的截屏

enter image description here

这里的地位是不明确的

再次

enter image description here

这里的地位是200

请让我知道什么是背后的原因,是我可以看到,有在休眠表的变化

请帮

+0

我必须承认,这个问题非常棘手。也许https://docs.angularjs.org/api/ng/service/$http可以帮助你。 – Azim

+0

uhm'.error()'和'.success()'被弃用。作为例子,他们还使用一个“响应”参数来处理服务器的响应。我也认为你应该与诺言合作,以获得更好的数据。 –

回答

0

嗯,我会离开你一个例子,我是如何处理的API电话与$http并承诺$q

我里面使用它一项服务,可以在我的控制器上注入。

this.update = function (Employee) { 
    var datosRecu = null; 
    var deferred = $q.defer(); 
    var token = $cookies.getObject('token'); 
    $http({ 
     url: '/Employee/update', 
     method: 'PUT', 
     params: { 
      id: Employee.id, 
      name: Employee.name 
     }, 
     headers: { 
      'Authorization': 'Bearer ' + token, 
      'Content-type': 'application/json' 
     } 
    }).then(function successCallback(response) { 
     datosRecu = response; 
     deferred.resolve(datosRecu); 
    }, function errorCallback(response) { 
     datosRecu = response; 
     deferred.resolve(datosRecu); 
    }); 
    return deferred.promise; 
}; 

现在,当我把它注射我的控制器上,我可以响应的所有数据读取的承诺deferred.promise

我希望它能帮助你。