在angularjs中保存对象的响应
Save response to object in angularjs
我有一个页面,通过ng-repeat和ng-model显示表和数据。当我单击保存按钮时,我调用post
服务,并将我的数据发布到数据库,并在回调中返回我的id。如何保存对对象的响应?
$scope.saveTask = function (workflow) {
if (workflow.isSaved == false) {
workflow.isSaved = true;
$scope.Task.push($scope.newTask());
restService.postArbitraryTask(angular.toJson(workflow));
}
};
在rest服务:postArbitraryTask: function (model, callback) {
$http({
method: 'POST',
url: Global.api.saveArbitraryTask,
contentType: 'application/json; charset=utf-8',
data: model
}).success(function (response) {
console.log(response);
if (callback) {
callback(response);
}
}).error(function() {});
},
postArbitraryTask
函数接受一个回调,该回调将传递响应。
使用它:
restService.postArbitraryTask(
angular.toJson(workflow),
function(response){
$scope.myObject = response;
}
);
同样,而不是:
if (workflow.isSaved == false) {
你可以使用:
if (!workflow.isSaved) {
您的postArbitraryTask
接受回调并传递响应给它
postArbitraryTask: function (model, callback) {
$http({
method: 'POST',
url: Global.api.saveArbitraryTask,
contentType: 'application/json; charset=utf-8',
data: model
}).success(function (response) {
console.log(response);
if (callback) {
callback(response);
}
}).error(function() {});
},
你可以修改你的saveTask函数来使用从服务器返回的任何数据。
$scope.saveTask = function (workflow) {
if (workflow.isSaved == false) {
$scope.Task.push($scope.newTask());
restService.postArbitraryTask(angular.toJson(workflow),
function(response){
workflow.isSaved = true;
workflow.id = response.id;
}
);
}
};
你可以进一步修改你的代码来处理错误(也不赞成成功和错误):
postArbitraryTask: function (model, callback) {
$http({
method: 'POST',
url: Global.api.saveArbitraryTask,
contentType: 'application/json; charset=utf-8',
data: model
}).then(function (response) {
console.log(response);
if (callback) {
callback(false,response);
}
},function(response) {
callback(true,response);
});
},
修改你的回调来接受错误
$scope.saveTask = function (workflow) {
if (workflow.isSaved == false) {
$scope.Task.push($scope.newTask());
restService.postArbitraryTask(angular.toJson(workflow),
function(error,response){
if(!error){
workflow.isSaved = true;
workflow.id = response.data.id;
}
else{
//handle error here(display an alert?) if an error occurs or server responds with an error code such as 404 or 500
}
}
);
}
};
相关文章:
- 我不知道如何正确地将REST响应对象传递给ReactJS子组件
- 获取 API 响应对象并替换(映射)所有键
- 如何在 http 上调用 end().服务器响应对象
- Express JS-查看/检查响应对象
- 请求一个完整的响应对象,而不是紧凑的响应对象foursquare场地搜索api
- json - 从响应对象中获取值,并将其插入请求中
- JSON 响应对象:“漂亮”键和较大的响应或短键和较小的响应
- 如何在 JavaScript 中访问 data.submit() 的 json 响应对象
- 在 Ember 对象中深度包装 JSON 响应对象
- 如何从多个 JSON 响应对象检索数据
- Twilio响应对象未定义,但没有错误
- 在Express和Node.js中,是否可以扩展或覆盖响应对象的方法
- 如何获得这里给出的响应对象的长度
- 将ajax响应对象存储在全局变量中--字段丢失
- 我可以从js文件中获得关于Symfony2响应对象的信息吗
- 在php中手动创建一个HTTP响应对象,发送它,并用Javascript捕获它
- 如何在Node.js/Express中创建响应对象
- IE8中解析JSON响应对象
- 从POST请求中获取干净的响应对象
- 多个文件追加到节点js的响应对象中