2016-07-05 43 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

我希望它能幫助你。