如何在$ HTTP.put中更新数据

时间:2016-01-22 18:51:58

标签: angularjs http

目前我正在开发angularJS应用。它从存储库中读取属性文件并输出可编辑的表,因此您可以更改所有属性。

我现在唯一的问题是,如何制作http.put请求以更新数据。

假设属性文件包含:

var data = {'prop1' : 'this', 'prop2' : 'that'};

我目前有:

$scope.update = function(key,value){
        $http.post('http://blabla.com/properties.json', $scope.data)
        .success(function (data, status) {
        //success code
    })

所以假设我将 prop1 更新为 newProperty 。 我的代码是否正确?远程存储库中的文件是否会更新?

或者我必须做这样的事情

$scope.update = function(key,value){
            $http.post('http://blabla.com/properties.json', 
             data: { 
                    prop1: 'newProperty' 
             })
            .success(function (data, status) {
            //success code
        })

我只更改了prop1,我是否还需要在数据括号中包含prop2?当我得到30个属性时会发生什么,那么如何使用Http.put只更新其中一个值?

感谢

1 个答案:

答案 0 :(得分:0)

该网址无效。您需要一个可以处理文件上载的服务器端API。单独使用Angular是不可能的。

e.g。

$http.put('http://blabla.com/properties_api', $scope.data);

此外,您已经在那里写了$http.post,除非您的存储库中不存在数据,否则将会(并且应该)失败。如果您正在更新,请将其更改为put,仅在您创建时将其“发布”。

通常,上传完整对象是可行的方法,否则服务器可能会将缺少其他数据视为删除该数据的明确意图。如果您有30个属性,请上传所有30个。 这取决于服务器代码处理此上载的方式。如果您自己编写,它会根据您提供的数据执行任何操作。

话虽如此,如果您拥有大量数据,那么将其全部上传是不可行的,因此您可以创建多个API,每个API都可以处理特定类型的数据。

e.g。

$http.put('http://blabla.com/properties_api/prop1_handler', $scope.data);