APICloud自学笔记总结1

我于去年12月份开始接触apicloud技术,到现在半年有余,期间大约自学了三个月,模仿apicloud官网[http:///www.apicloud.com]的一个实例完成毕业设计。自认为是有收获的。毕竟纯粹是自学,自己基础水平也一般,现在利用此技术在完成一个app的前端,属于刚起步,摸索了两周。现在把自己收获的做个记录和分享,废话不说直接上代码。更多问题欢迎交流,qq:635149113  了解。  

我前端最开始是自己写的,用的就是基本的html、css、js 也结合了一些aui框架写的前端

数据库用的官方的云数据库,它有一些数据类型比较特殊,基本的就是String、Number、File、Date、Boolean、Array、Object...我要说的是pointer(一对一)和realation(一对多)。

大概介绍一下pointer(一对一)和realation(一对多)。

pointer(一对一):就像是一个公民只有一张身份证

realation(一对多):就像是一个老师可以带多个班、或者说一个人可以有多个小名

学过数据库建过表的人知道这两种关系,重要性也知道,谁的有实际用处的数据库也不可能只有几张完全没关系的表。ok,就是说你用云数据库对数据进行操作是不用自己写后端代码的,具体的在官方文档有提供实例,最强大的有API调试。

前端的东西我用一个很具体的例子写出来。例子中涉及到从数据库中的一张表取值,是以其他一个页面的一个按钮触发的这个事件跳到这个页面,然后根据条件去判断具体显示哪些值。我使用的是dot.js模板。自己百度学习一下。

这里边也涉及了基本的存取值问题,就是从数据库取到值后处理显示到界面还是取值之前进行处理后显示到界面,这是不一样的。

  1 <!DOCTYPE html>
  2 <html>
  3     <head>
  4         <meta charset="utf-8">
  5         <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" />
  6         <title>APP</title>
  7         <link rel="stylesheet" type="text/css" href="../../css/aui.css" />
  8         <link rel="stylesheet" type="text/css" href="../../css/api.css" />
  9         <style>
 10             .aui-text-center{font-size: 14px !important;height: 50px;line-height: 50px;}
 11             .box{
 12             display:-webkit-box;
 13             display: -moz-box;
 14             -webkit-box-orient: horizontal;
 15             -moz-box-orient: horizontal;
 16             height: 85px;
 17             border: 0px solid fuchsia;
 18         }
 19         .box div img{width: 60px;border: 0px solid darkblue;}
 20         .box div:nth-of-type(2){-webkit-box-flex:6;border: 0px solid teal;height: 86px;margin: 0px 5px;}
 21         .aui-content-padded{margin-bottom:0px;margin-top: 10px;}
 22         .aui-content-padded ul li div .imgLeft{position: relative;}
 23         .aui-content-padded ul li div .imgLeft + span{border: 0px solid #00FFFF;position: absolute;height: 20px;width: 60px;font-size: 12px;text-align: center;}
 24         .aui-content-padded ul li div .mName{margin-bottom:8px;float:left;text-align: left;color: black;border: 0px solid red;width: 65%;}
 25         .aui-content-padded ul li div .text-left{text-align: left;font-size: 12px;}
 26         .aui-content-padded ul li div  .aui-ellipsis-2 {-webkit-line-clamp: 3;clear: both;}
 27          hr{height: 1px;border:none;border-top: 1px solid #cccccc;margin-top: 15px;}
 28         .box div:nth-of-type(1) span{color: #99bbff;}
 29         .aui-content-padded ul li div .judge{color: #ff8585;margin-bottom:8px;border: 0px solid lawngreen;text-align: right;}
 30         .bo{border: 0px solid darkblue;text-align: center;}    
 31         </style>
 32     </head>
 33     <body>
 34         <p class="bo aui-ellipsis-2" id="headText">每一勋章,当天只可授予1次;每天,最多可授予3枚勋章</p>    
 35         <div class="aui-content-padded test">
 36            <ul>
 37                <script id="awardMedal-template" type="text/x-dot-template">
 38                    {{ for(var i=0;i<it.length;i++){ }}                        
 39                        <li class="box">
 40                            <div class="">
 41                                <img class="imgLeft" src="{{=it[i].img.url}}" />
 42                                <span>{{=it[i].habit}}</span>
 43                            </div>
 44                            <div class="aui-text-left aui-padded-5">
 45                                <p class="mName">{{=it[i].medalName}}</p>
 46                                <!--描述:此处需要进行判断具体显示哪一个 -->
 47                                {{if(it[i].medalNum>0){}}
 48                                    <p class="judge">今天已授予</p>
 49                                    
 50                                {{ }else{ }}
 51                                    <input class="judge aui-pull-right aui-radio aui-radio-info" type="radio" name="demo">
 52                                {{}}}
 53                                <p class="aui-ellipsis-2 text-left">{{=it[i].getMedalDue}}</p>
 54                            </div>
 55                        </li>
 56                     <hr class="aui-padded-10"/>
 57                 {{ } }}    
 58                     </script>
 59                     <li id="awardMedal"></li>
 60            </ul>
 61         </div>
 62         
 63         
 64     </body>
 65 <script type="text/javascript" src="../../script/api.js"></script>
 66 <script type="text/javascript" src="../../script/common.js"></script>
 67 <script type="text/javascript" src="../../script/doT.min.js"></script>
 68 <script type="text/javascript">
 69 
 70 apiready = function() {
 71     awardWall();
 72     api.setRefreshHeaderInfo({
 73                 visible: true,
 74                 loadingImgae: 'wgt://image/refresh-white.png',
 75                 bgColor: '#f2f2f2',
 76                 textColor: '#4d4d4d',
 77                 textDown: '下拉刷新...',
 78                 textUp: '松开刷新...',
 79                 showTime: true
 80             }, function(ret, err) {
 81                 awardWall();
 82                 api.refreshHeaderLoadDone();
 83             });
 84 
 85             api.addEventListener({
 86                 name: 'scrolltobottom'
 87             }, function(ret, err) {
 88                 awardWall();
 89             });
 90             
 91 }
 92 
 93 
 94         function awardWall() {
 95             var urlParam1 = {
 96                 "where":{"medalName":{"ne":"更多勋章"}},"skip":0
 97             };
 98             var awardMedal = '/medal?filter=';
 99             ajaxRequest(awardMedal + JSON.stringify(urlParam1), 'GET', '', function(ret, err) {
100                 if(ret) {
101 //                    alert(JSON.stringify(ret));  
102 //                    alert(typeof(JSON.stringify(ret)));       //string
103 //                    alert(typeof(ret));                        //object
104 //                    alert(JSON.stringify(ret[5].medalNum));
105                     var content1 = $api.byId('awardMedal');
106                     var tpl1 = $api.byId('awardMedal-template').text;
107                     var tempFn1 = doT.template(tpl1);
108                     
109                     var allMedal = 0;
110                     for (var i = 0; i < ret.length; i++) {
111                         allMedal += ret[i].medalNum;
112                     }
113                     if(allMedal==3){
114                         //只能显示已经授予的三个,或者是medalNum>0的
115                          //将得到的ret再次筛选,取出medalNum>0的全部数据,放到ret1
116                         var ret1 = [];
117                         for (var i = 0; i < ret.length; i++) {
118                         if(ret[i].medalNum>0){
119                             ret1.push(ret[i]);
120                         }
121                     }    
122                     var headText = document.getElementById("headText").innerHTML='真厉害!孩子在今天已经获得了3枚习惯勋章,不可获得更多了哦~真厉害!孩子在今天已经获得';
123                     content1.innerHTML = tempFn1(ret1);
124                     }else if(allMedal<3){
125                         //全部显示,其中未授予过的是单选按钮,而且加上已经授予的总和不能大于3
126                         content1.innerHTML = tempFn1(ret);
127                     }else{
128                         //do nothing
129                     }
130                 } else {
131                     api.alert({
132                         msg: err.msg
133                     });
134                 }
135                 api.hideProgress();
136             })
137             }
138         
139 </script>
140     
141 </html>


我的数据库如下,这是我从云端导出的,是后缀为.json的文件

 

1 {"_id":{"$oid":"578c7ebf2348b7f9487e3b42"},"img":{"url":"http://a3e6b86719cc7b60664a.b0.upaiyun.com/apicloud/52ff744cc0a02c8ab5e9b70699502a4d.jpg","name":"medal01.jpg","id":"578c7ebf8339749c49a6d472"},"createdAt":{"$date":"2016-07-18T07:01:19.769Z"},"updatedAt":{"$date":"2016-07-20T06:56:13.136Z"},"medalName":"思考勋章","habit":"行动习惯","getMedalDue":"连续七天,每天用20~30连续七天,每天用20~30分钟陪着孩子阅读书籍书籍可以由父母或者孩子选择,你们是最棒的啊!","medalNum":0}
2 {"_id":{"$oid":"578c7eca2348b7f9487e3b4f"},"img":{"url":"http://a3e6b86719cc7b60664a.b0.upaiyun.com/apicloud/8330f4e73acf4fb70f6c36e5b2c1aa38.jpg","name":"medal02.jpg","id":"578c7eca2348b7f9487e3b4e"},"createdAt":{"$date":"2016-07-18T07:01:30.349Z"},"updatedAt":{"$date":"2016-07-20T03:19:49.412Z"},"medalName":"探险勋章","habit":"兴趣习惯","getMedalDue":"连续七天,每天用20~30连续七天,每天用20~30分钟陪着孩子阅读书籍书籍可以由父母或者孩子选择,你们是最棒的啊!","medalNum":0}
3 {"_id":{"$oid":"578c7ed2dcad32dc7129e42c"},"img":{"url":"http://a3e6b86719cc7b60664a.b0.upaiyun.com/apicloud/5746e258841d92f48c52e6e30fecd05b.jpg","name":"medal03.jpg","id":"578c7ed28339749c49a6d47c"},"createdAt":{"$date":"2016-07-18T07:01:38.432Z"},"updatedAt":{"$date":"2016-07-20T07:10:54.237Z"},"medalName":"阅读勋章","habit":"交友习惯","getMedalDue":"连续七天,每天用20~30连续七天,每天用20~30分钟陪着孩子阅读书籍书籍可以由父母或者孩子选择,你们是最棒的啊!","medalNum":1}
4 {"_id":{"$oid":"578c7ed7f78b9b494aeb67c5"},"img":{"url":"http://a3e6b86719cc7b60664a.b0.upaiyun.com/apicloud/8330f4e73acf4fb70f6c36e5b2c1aa38.jpg","name":"medal02.jpg","id":"578cc66c4a2810821723bf41"},"createdAt":{"$date":"2016-07-18T07:01:43.264Z"},"updatedAt":{"$date":"2016-07-20T03:19:43.172Z"},"medalName":"作业勋章","habit":"生活习惯","getMedalDue":"连续七天,每天用20~30连续七天,每天用20~30分钟陪着孩子阅读书籍书籍可以由父母或者孩子选择,你们是最棒的啊!","medalNum":0}
5 {"_id":{"$oid":"578c7edc8339749c49a6d483"},"img":{"url":"http://a3e6b86719cc7b60664a.b0.upaiyun.com/apicloud/c8f1a1a7d9ae437300e7ccac00e7a0fb.jpg","name":"medal05.jpg","id":"578c7edc8339749c49a6d482"},"createdAt":{"$date":"2016-07-18T07:01:48.978Z"},"updatedAt":{"$date":"2016-07-20T06:53:29.724Z"},"medalName":"勤劳勋章","habit":"卫生习惯","getMedalDue":"连续七天,每天用20~30连续七天,每天用20~30分钟陪着孩子阅读书籍书籍可以由父母或者孩子选择,你们是最棒的啊!","medalNum":1}
6 {"_id":{"$oid":"578c7ee22348b7f9487e3b5a"},"img":{"url":"http://a3e6b86719cc7b60664a.b0.upaiyun.com/apicloud/0a1e5c08fdfc58f75eb8746d89e89f0a.jpg","name":"medal06.jpg","id":"578c7ee2f78b9b494aeb67ca"},"createdAt":{"$date":"2016-07-18T07:01:54.150Z"},"updatedAt":{"$date":"2016-07-19T08:22:22.886Z"},"medalName":"独立勋章","habit":"学习习惯","getMedalDue":"连续七天,每天用20~30连续七天,每天用20~30分钟陪着孩子阅读书籍书籍可以由父母或者孩子选择,你们是最棒的啊!","medalNum":0}
7 {"_id":{"$oid":"578c7ee7f78b9b494aeb67cc"},"img":{"url":"http://a3e6b86719cc7b60664a.b0.upaiyun.com/apicloud/ad32b55e9e2ea46bd6b52ad46620841f.jpg","name":"medal07.jpg","id":"578c7ee72348b7f9487e3b5c"},"createdAt":{"$date":"2016-07-18T07:01:59.636Z"},"updatedAt":{"$date":"2016-07-20T05:31:55.975Z"},"medalName":"持之以恒勋章","getMedalDue":"连续七天,每天用20~30连续七天,每天用20~30分钟陪着孩子阅读书籍书籍可以由父母或者孩子选择,你们是最棒的啊!","habit":"行动习惯","medalNum":1}
8 {"_id":{"$oid":"578c82762348b7f9487e3d4c"},"img":{"url":"http://a3e6b86719cc7b60664a.b0.upaiyun.com/apicloud/612b57d32bf57643cfe995113a9ce6d0.jpg","name":"medal08.jpg","id":"578c82762b69092010030805"},"medalName":"更多勋章","createdAt":{"$date":"2016-07-18T07:17:10.154Z"},"updatedAt":{"$date":"2016-07-19T10:52:28.860Z"},"medalNum":0}

里边还涉及到几个js文件以及css,直接放到你本地是不能运行的。只是逻辑和基本的方法留个笔记。欢迎交流。

 

转载于:https://www.cnblogs.com/zlj1027/p/5689253.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值