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学习笔记5 类和对象
Jan 11 Javascript
javascript,jquery闭包概念分析
Jun 19 Javascript
浏览器解析js生成的html出现样式问题的解决方法
Apr 16 Javascript
js中的push和join方法使用介绍
Oct 08 Javascript
web css实现整站样式互相切换
Oct 29 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
Nov 19 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
Dec 29 Javascript
Node.js利用debug模块打印出调试日志的方法
Apr 25 Javascript
基于vue实现swipe分页组件实例
May 25 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
Dec 26 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
May 08 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
Jun 01 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
PHP分页效率终结版(推荐)
2013/07/01 PHP
PHP中echo和print的区别
2014/08/28 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
2017/08/09 jQuery
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
js实现弹窗效果
2020/08/09 Javascript
Python heapq使用详解及实例代码
2017/01/25 Python
Python使用wxPython实现计算器
2018/01/30 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
python多线程并发实例及其优化
2019/06/27 Python
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
乌克兰在线药房:Аптека24
2019/10/30 全球购物
高中同学会活动方案
2014/08/14 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
委托公证书样本
2015/01/23 职场文书
诚信教育主题班会
2015/08/13 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers
Python 使用dict实现switch的操作
2021/04/07 Python
Python实现自动玩连连看的脚本分享
2022/04/04 Python
victoriaMetrics库布隆过滤器初始化及使用详解
2022/04/05 Golang