`
赵彦枝
  • 浏览: 50317 次
  • 性别: Icon_minigender_2
  • 来自: 河北
社区版块
存档分类
最新评论

LeanCloud数据的查询,修改和删除

 
阅读更多

                                              LeanCloud数据的查询,修改和删除

1.对存储在LeanCloud中的数据进行查询,修改

(1)首先创建查询实例

 

var query = new AV.Query('Todo');

(2)获取对象并进行修改

 

        每个被成功保存在云端的对象会有一个唯一的 Id 标识 ,因此获取对象的最基本的方法就是根据 id来查询.

 $scope.addButtonEvent = function(product,num){
        var userId=$scope.getUserId();//每次认证登陆云端会返回给本地一个id并从本地获取的id
        var user=AV.Object.createWithoutData('User', userId);
        var relation=user.relation('productInfo'); //'productInfo'关联数据的名字
        var query = relation.query();  //创建的查询实例
        query.find().then(function(results){ //results为云端返回某id用户的数据,该数据是对象的数组
            var itemName = [];
            for (var i = 0; i < results.length; i++) {
                itemName.push(results[i].get('itemName'))
            }
            var index=itemName.indexOf(product.itemName);
            if(index==-1){
                ShoppingCart.addProduct(product, user);
            }else{
                var goodsInfo=AV.Object.createWithoutData('GoodsInfo',results[index].id);
                var  itemInfo=Item.computeItemCount(results[index],num);
                var  itemInfo=Item.computeCostPrice(itemInfo);
                var  promotion=new Promotion();
                var  itemInfo=promotion.computePromotionCount(itemInfo);
                var  itemInfo=promotion.computeSavePrice(itemInfo);
                var  itemInfo=ShoppingCart.computeActuallyPaid(itemInfo);
                goodsInfo.set('count',itemInfo.attributes.count);
                goodsInfo.set('costPrice',JSON.stringify(itemInfo.attributes.costPrice));
                goodsInfo.set('promotionCount',itemInfo.attributes.promotionCount);
                goodsInfo.set('savePrice',itemInfo.attributes.savePrice);
                goodsInfo.set('actuallyPaid',JSON.stringify(itemInfo.attributes.actuallyPaid));
                goodsInfo.save();  //以上调用set方法是对数据的修改
                $scope.showCartCount()
            }
        }, function (error) {
           //异常处理
        });
    }

 3.对数据进行删除

     

 $scope.addButtonEvent=function(){
        var userId = $scope.getUserId();
        var user = AV.Object.createWithoutData('User', userId);
        var relation = user.relation('productInfo');
        var query = relation.query();
        query.find().then(function(results){
            for(var i=0;i<results.length;i++){
                results[i].destroy();//使用destroy方法对返回来的数据进行删除
            }
        });
    };

 4.使用$q处理异步问题

            q服务是AngularJS中自己封装实现的一种Promise实现.通过$q服务得到一个deferred实例,通过deferred实例的promise属性得到一个Promise对象,promise对象负责定义回调函数,deferred实例负责触发回调.

$scope.showShoppingList=function(){
        var defer = $q.defer(); 
        var promise = defer.promise; //defer为延时
        var userId = $scope.getUserId();
        var user = AV.Object.createWithoutData('User', userId);
        var relation = user.relation('productInfo');
        var query = relation.query();
        promise.then(function(data){  //该函数是让请求到的数据做什么
            $scope.cartList=data ;
            $scope.showSumSavePrice(data)
            $scope.showActuallyPaid(data);
        });
        defer.resolve( query.find().then(function(results){ //该方法是从云端获取数据
                var data=[];
                for(var i=0;i<results.length;i++){
                    data.push(results[i].attributes)
                }
                return data
            }
        ));
    };

 

 

 

 

   

 

分享到:
评论

相关推荐

    swift-一个无后端待办事项应用数据用LeanCloud进行同步。

    6. **LeanCloud SDK集成**:学习如何在Swift项目中安装和配置LeanCloud的SDK,创建数据对象,执行CRUD(创建、读取、更新、删除)操作,以及实现数据的实时同步。 7. **推送通知**:虽然项目描述中没有明确提及,但...

    小程序LeanCloud程序源码

    - 如何使用存储 SDK 对云端数据进行查询、增加、修改与删除 - 查询结果为一个列表时,如何将其绑定到视图层进行展示以及如何在点击事件中得到对应的数组项 - 如何自动登录 LeanCloud 用户系统 - 如何在登录后设置...

    LeanStorageDemo-Android, 基于 Android SDK,全面示例了 LeanCloud 的存储功能.zip

    在 Android 开发中,利用 LeanCloud 的存储功能,可以轻松实现数据的云同步和管理。"LeanStorageDemo-Android" 是一个开源项目,专门展示了如何在 Android 应用中充分利用 LeanCloud 的存储服务。下面,我们将深入...

    PyPI 官网下载 | leancloud-sdk-1.12.0.tar.gz

    1. 数据存储:SDK 提供了与 LeanCloud 数据库交互的接口,允许用户创建、读取、更新和删除数据对象。通过简单的Python对象操作,即可实现对云端数据的操作。 2. 实时通信:SDK 支持实时的Websocket通信,使得开发者...

    Android,课程表应用,基于leancloud开发.zip

    针对这些问题,用户可以尝试一些基本的解决方法,如清除应用缓存和数据、降低屏幕亮度、关闭没有使用的连接和传感器、限制后台运行的应用、删除不需要的文件和应用等。 随着Android系统的不断发展,其功能和性能也...

    search搜索

    - **获取数据**:可以通过类名查询数据,例如`AVQuery`类提供了多种查询方法。 - **更新数据**:使用`AVObject`类的对象可以直接更新字段,然后调用`saveInBackground`方法保存更改。 - **删除数据**:同样使用`...

    微信小程序-微信小程序你的名字

    - 数据库设计:如何利用Leancloud的数据库服务来存储日记内容,可能涉及数据模型设计和查询优化。 - 用户认证:通过微信登录功能,实现用户的授权和身份验证。 - 实时同步:利用Leancloud的实时同步能力,保证多设备...

    基于java开发的生鲜和农产品类电商APP源码+项目说明+开题报告(毕设项目).zip

    * 该App所有数据均来自LeanCloud后端云实现 * 基于LeanCloud,实现了用户注册的短信验证功能 * 首页轮播图使用GitHub开源框架[Banner] * 使用Glide加载图片 * 使用zxingLibrary实现了二维码的扫描 * 头像使用...

    leantodo-weapp:LeanTodo与Weapp一起实现

    如何使用存储SDK对云端数据进行查询,增加,修改与删除 查询结果为一个列表时,如何将其绑定到视图层进行展示以及如何在点击事件中得到对应的数组项 如何使用LiveQuery实现对查询结果的实时更新 如何自动登录...

    yik:创建一条15条钟后自动删除的消息

    yik Yik 一刻是一个在线生成15分钟后自动删除的工具。具有如下特点: ...一刻使用云代码及数据API构建,全站运行在Leadcloud。云代码还可以绑定域名,更赞的是可以使用自己的SSL证书,实现独立域名SSL

    Valine-Admin:Valine-Admin 定制版

    - **DOM操作**:JavaScript是实现Valine-Admin交互的关键,通过DOM(Document Object Model)接口来操作网页元素,如添加、删除和修改评论。 - **AJAX请求**:使用JavaScript的XMLHttpRequest或fetch API进行异步...

    毕业设计订餐系统源码-Eleme:饿了么

    增加删除修改 用户端登录 用户端主页交互逻辑 用户端商家列表 商家菜单列表 购物车结算 订单数据生成 用户端订单列表 用户端订单详情 商家端查看所有订单 沉浸式状态栏 activity启动/退出时的动画 商家订单详情-订单...

Global site tag (gtag.js) - Google Analytics