Angularjs的$http异步删除数据详解及实例


Posted in Javascript onJuly 27, 2017

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异步删除数据的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
javascript使用activex控件的代码
Jan 27 Javascript
基于JQuery的抓取博客园首页RSS的代码
Dec 01 Javascript
jQuery修改CSS伪元素属性的方法
Jul 30 Javascript
javascript实时显示当天日期的方法
May 20 Javascript
JavaScript中join()方法的使用简介
Jun 09 Javascript
Node.js编程中客户端Session的使用详解
Jun 23 Javascript
js+css实现select的美化效果
Mar 24 Javascript
详解angular 中的自定义指令之详解API
Jun 20 Javascript
JS数组操作之增删改查的简单实现
Aug 21 Javascript
vue基于两个计算属性实现选中和全选功能示例
Feb 08 Javascript
Vue.js中的高级面试题及答案
Jan 13 Javascript
JavaScript组合模式---引入案例分析
May 23 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
Jul 27 #Javascript
Angularjs的键盘事件的绑定
Jul 27 #Javascript
Angularjs 事件指令详细整理
Jul 27 #Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
Jul 27 #Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
Jul 27 #Javascript
angular中实现li或者某个元素点击变色的两种方法
Jul 27 #Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
Jul 27 #Javascript
You might like
2020年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
通过Javascript将数据导出到外部Excel文档的函数代码
2012/06/15 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
React 使用Hooks简化受控组件的状态绑定
2019/03/18 Javascript
修改vue源码实现动态路由缓存的方法
2020/01/21 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
JS+canvas五子棋人机对战实现步骤详解
2020/06/04 Javascript
Python安装第三方库的3种方法
2015/06/21 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
python算法表示概念扫盲教程
2017/04/13 Python
python 同时运行多个程序的实例
2019/01/07 Python
Django框架表单操作实例分析
2019/11/04 Python
解决Python二维数组赋值问题
2019/11/28 Python
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
北京捷通华声语音技术有限公司Java软件工程师笔试题
2012/04/10 面试题
夜大自我鉴定
2013/10/31 职场文书
护士见习期自我鉴定
2014/02/08 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript