Javascript 如何创建Angularjs部分更新(补丁)?
我是新来的, 有一个管理一些客户数据的应用程序,它是一个存储在localStorage中的json文件, 如何在服务中创建部分更新修补程序(delta)方法 还需要一个错误处理 json: HTML: 服务:Javascript 如何创建Angularjs部分更新(补丁)?,javascript,json,angularjs,Javascript,Json,Angularjs,我是新来的, 有一个管理一些客户数据的应用程序,它是一个存储在localStorage中的json文件, 如何在服务中创建部分更新修补程序(delta)方法 还需要一个错误处理 json: HTML: 服务: articleServices.factory("customerData",["$http",'LS','$q','$filter','$log',function($http,LS,$q,$filter,$log){ var baseUrl = 'jsondata/custo
articleServices.factory("customerData",["$http",'LS','$q','$filter','$log',function($http,LS,$q,$filter,$log){
var baseUrl = 'jsondata/customers.json';
var dataLoad = null;
// throw('test');
init();
return{
............
//partial update
quickUpdate: function(c){
return dataLoad.then(function(data){
???????????????????
});
}
}
function init(){
customers = LS.getData("cutomers");
if(customers){
dataLoad = $q.resolve(customers);
}
else
dataLoad = $http.get(baseUrl).then(function(response){
LS.setData(response.data,"cutomers");
return response.data;
}).catch(function(e) { throw { status: e.staus, message: e.statusText }});
dataLoad.catch(onError);
return dataLoad;
}
function onError(error){
$log.error();
$log.error({ status: error.status, message: error.message, source: 'customerData'});
}
}]);
我找到了部分更新的解决方案 (angular.merge->合并2个对象)
var obj1={
“姓名”:“乔治”,
“lastName”:“Doe”
}
变量obj2={
“姓名”:“格雷戈”,
‘年龄’:‘20’
}
var result=angular.merge({},obj1,obj2);
结果={
“姓名”:“格雷戈”,
'lastName':'Doe',
‘年龄’:‘20’
}
在回答您的问题时,您应该确保将答案标记为已接受,即使它是您自己的答案。
<form name="part-update" novalidate>
<input type="number" class="number" name="id" value="{{customer.id}}" ng-model="customer.id" disabled />
<input type="text" name="name" value="{{customer.name}}" ng-model="customer.name" />
<input type="text" name="lastname" value="{{customer.lastname}}" ng-model="customer.lastname" />
<input type="text" name="hobby" value="{{customer.hobby}}" ng-model="customer.hobby" />
<input type="text" name="age" value="{{customer.age}}" ng-model="customer.age" />
<button class="btn btn-success btn-xs" ng-click="quickSave(customer)">save</button>
<button class="btn btn-danger btn-xs" ng-click="close()" >cancel</button>
</form>
.......
$scope.quickSave=function(c){
customerData.quickUpdate(c);
$scope.quickEdit = false;
$scope.customer={};
refresh();
}
.......
articleServices.factory("customerData",["$http",'LS','$q','$filter','$log',function($http,LS,$q,$filter,$log){
var baseUrl = 'jsondata/customers.json';
var dataLoad = null;
// throw('test');
init();
return{
............
//partial update
quickUpdate: function(c){
return dataLoad.then(function(data){
???????????????????
});
}
}
function init(){
customers = LS.getData("cutomers");
if(customers){
dataLoad = $q.resolve(customers);
}
else
dataLoad = $http.get(baseUrl).then(function(response){
LS.setData(response.data,"cutomers");
return response.data;
}).catch(function(e) { throw { status: e.staus, message: e.statusText }});
dataLoad.catch(onError);
return dataLoad;
}
function onError(error){
$log.error();
$log.error({ status: error.status, message: error.message, source: 'customerData'});
}
}]);