目前我正在开发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只更新其中一个值?
感谢
答案 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);