时间:2021-05-28
Angularjs的$http异步删除数据详解及实例
有人会说删除这东西有什么可讲的,写个删除的service,controller调用一下不就完了。
嗯...看起来是这样,但是具体实现起来真的有这么简单吗?首先有以下几个坑
怎么确定数据是否删除成功?
怎么同步视图的数据库的内容?
1.思路
1.实现方式一
删除数据库中对应的内容,然后将$scope中的对应的内容splice
2.实现方式二
删除数据库中对应的内容,然后再reload一下数据(也就是再调用一次查询方法,这种消耗可想而知,并且还要保证先删除数据再查询)
2.具体实现方式
删除数据的service:用异步,返回promise
service('deleteBlogService',//删除博客 ['$rootScope', '$http', '$q', function ($rootScope, $http, $q) { var result = {}; result.operate = function (blogId) { var deferred = $q.defer(); $http({ headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }, url: $rootScope.$baseUrl + "/admin/blog/deleteBlogById", method: 'GET', dataType: 'json', params: { id: blogId } }) .success(function (data) { deferred.resolve(data); console.log("删除成功!"); }) .error(function () { deferred.reject(); alert("删除失败!") }); return deferred.promise; }; return result; }])controller里面注意事项
要特别注意执行顺序:确保己经删除完成之后再去reload数据,不然会出来视图不更新
/** * 删除博客 */ $scope.deleteBlog = function (blogId) { var deletePromise = deleteBlogService.operate(blogId); deletePromise.then(function (data) { if (data.status == 200) { var promise = getBlogListService.operate($scope.currentPage); promise.then(function (data) { $scope.blogs = data.blogs; $scope.pageCount = $scope.blogs.totalPages; }); } }); };以上就是Angularjs的$http异步删除数据的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
AngularJS封装$http.post()实例详解用了不是很长的时间跟了一个移动APP项目,用的是ionic+AngularJS+cordova框架,其间遇
Angularjs中数据绑定的实例详解这是一个最简单的angularjs的例子,关于数据绑定的,大家可以执行一下,看看效果angularjs-includeHe
本文实例讲述了Yii使用DeleteAll连表删除出现报错问题的解决方法。分享给大家供大家参考,具体如下:删除数据的时候,经常会遇到连联判断删除数据的条件,今天
本文实例讲述了AngularJS框架双向数据绑定机制。分享给大家供大家参考,具体如下:之前写的一篇《AngularJS入门示例之HelloWorld详解》,介绍
1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据