Apicloud学习第四天
apicloud存储机制,添加和获取存储的数据
$api.setStorage('currentCity', cityList[i_]);
$api.getStorage('currentCity');
监听事件,name为监听的事件名称
api.addEventListener({
name: 'cityChange'
}, function(ret, err){
if( ret ){
// alert( JSON.stringify( ret ) );
var city=$api.byId('city');
city.innerHTML=ret.value.currentCity.name;
openFrames();
}else{
alert( JSON.stringify( err ) );
}
});
doT模板(js下载)
{{~it:value:index}} …… {{~}} //里面的为模板内容
{{=value.thumbnail.url}} //在模板中动态添加数据
{{?0==value.showType}}……{{??}}……{{?}}//判断写法
<script type="text/template" id="template">
{{~it:value:index}}
{{?0==value.showType}}
<div class="ware ware-0" >
<div class="content" onclick="fnOpenWareWin('{{=value.id}}')">
<img onload="fnLoadImage(this)" data-url="{{=value.thumbnail.url}}" class="thumbnail" src="../image/default_rect.png">
<div class="info">
<div class="name">{{=value.name}}</div>
<div class="description">{{=value.description}}</div>
<div class="price-tag">
<span class="price">¥{{=value.price}}</span>
<span class="unit">/{{=value.unit}}</span>
</div>
<div class="origin-price">超市:
<del>{{=value.originPrice}}元</del>
</div>
</div>
<div class="control">
<div class="panel">
<img class="minus" src="../image/minus.png">
<div class="count">0</div>
</div>
<img class="add" src="../image/add.png ">
</div>
</div>
</div>
{{??}}
<div class="ware ware-1">
<div class="content" onclick="fnOpenWareWin('{{=value.id}}')">
<img onload="fnLoadImage(this)" data-url="{{=value.thumbnail.url}}" class="thumbnail" src="../image/default_square.png">
<div class="info">
<div class="name">{{=value.name}}</div>
<div class="description">{{=value.description}}</div>
<div class="price-tag">
<span class="price">¥{{=value.price}}</span>
<span class="unit">/{{=value.unit}}</span>
</div>
<div class="origin-price">超市:
<del>{{=value.originPrice}}元</del>
</div>
</div>
<div class="control">
<div class="panel">
<img class="minus" src="../image/minus.png">
<div class="count">0</div>
</div>
<img class="add" src="../image/add.png ">
</div>
</div>
</div>
{{?}}
{{~}}
</script>
模板使用方法
function fnUpdateWareList(data_,loadMore_){//使用js模板
var list=$api.byId('list');
var tempFn=doT.template($api.byId('template').innerHTML);
var resultText=tempFn(data_);
if(loadMore_){
$api.append(list, resultText);
}else{
$api.html(list, resultText);
}
api.parseTapmode();//优化点击事件,主要是因为通过js加载进去的tepmode没有起到作用,所以要使用此方法进行优化
if(loadMore_){
if(data_.length<LIMIT){
var pushStatus=$api.byId('pushStatus');
pushStatus.innerHTML="没有啦";
}
}
}
图片缓存机制
api.imageCache({//图片缓存
url: dataUrl
}, function(ret, err){
if( ret ){
// alert( JSON.stringify( ret ) );
ele_.src=ret.url;
$api.attr(ele_, 'data-url',"");
}else{
alert( JSON.stringify( err ) );
}
});
页面刷新功能实现
api.setRefreshHeaderInfo({//刷新
visible: true,
loadingImg: 'widget://image/refresh.png',
bgColor: '#ccc',
textColor: '#fff',
textDown: '下拉刷新...',
textUp: '松开刷新...',
showTime: true
}, function(ret, err){
fnGetWare();
});
结束刷新
api.refreshHeaderLoadDone();//结束刷新
加载弹出对话框
api.showProgress({//加载弹出框
style: 'default',
animationType: 'fade',
title: '努力加载中...',
text: '先喝杯茶...',
modal: false
});
结束加载
api.hideProgress();//结束加载
将json文件转为字符串
$api.jsonToStr(params);
将字符串转换为json文件
$api.strToJson(params);
设置属性
$api.attr(ele_, 'data-url','value');
参数设置
var params={
fields:{},
where: { //设置条件
supportAreaId: currentCity.id,
wareTypeId:wareTypeList[api.pageParam.wareTypeIndex].id
},
skip:skip,//设置起步数
limit:LIMIT//设置步数
}
Apicloud学习第四天的更多相关文章
- 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式
本系列文章导航 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 一.摘要 本篇文章讲解如何使用jQuery获取和操作元素的属性和CSS样式. 其中DOM属性和元素属性的区分值得 ...
- 前端学习 第四弹: HTML(一)
前端学习 第四弹: HTML(一) 元素分类:块元素 内联元素 块级元素在浏览器显示时,通常会以新行来开始(和结束). 例子:<h1>, <p>, <ul>, &l ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- Android Animation学习(四) ApiDemos解析:多属性动画
Android Animation学习(四) ApiDemos解析:多属性动画 如果想同时改变多个属性,根据前面所学的,比较显而易见的一种思路是构造多个对象Animator , ( Animator可 ...
- 五、Android学习第四天补充——Android的常用控件(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 五.Android学习第四天补充——Android的常用控件 熟悉常用的A ...
- 四、Android学习第四天——JAVA基础回顾(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...
- MVC学习(四)几种分页的实现(3)
在这篇MVC学习(四)几种分页的实现(2)博文中,根据URL中传入的两个参数(页码数,首页.上一页.下一页.末页的标记符)来获得对应的分页数据, 只是传入的参数太多,调用起来不太方便(标记符不能够写错 ...
- MyBatis学习 之 四、MyBatis配置文件
目录(?)[-] 四MyBatis主配置文件 properties属性 settings设置 typeAliases类型别名 typeHandlers类型句柄 ObjectFactory对象工厂 pl ...
- 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
[转]MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体 ...
随机推荐
- SQLServer之数据库行锁
行锁使用注意事项 1.ROWLOCK行级锁确保在用户取得被更新的行,到该行进行更新,这段时间内不被其它用户所修改.因而行级锁即可保证数据的一致性,又能提高数据操作的并发性. 2.ROWLOCK告诉SQ ...
- windows常用目录
启动目录位置 %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
- Java基础系列--05_面向对象
1.概述: (1)面向过程:将问题一步一步的解决的过程(详细步骤),在C语言中所有的代码都是基于过程化的代码. (2)面向对象:面向对象是基于面向过程的编程思想,所有的事情都交由创建出来的对象去指挥. ...
- In action "Setting JDBC driver jar location unix [Set a variable]" (screen "Select a Database [Configurable banner form]"), property "Script":
java.lang.Exception: JDBC Driver Jar not found. Looking for: /u01/oracle/GG_Director/ERROR: Unresolv ...
- C#使用异步操作时的注意要点(翻译)
异步操作时应注意的要点 使用异步方法返回值应避免使用void 对于预计算或者简单计算的函数建议使用Task.FromResult代替Task.Run 避免使用Task.Run()方法执行长时间堵塞线程 ...
- redis 的过期策略都有哪些?内存淘汰机制都有哪些?
面试题 redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现? 面试官心理分析 如果你连这个问题都不知道,上来就懵了,回答不出来,那线上你写代码的时候,想当然的认为写进 r ...
- 石家庄地铁系统开发(java web版)(二)
两种方法: 一,自己写数据库,自己写算法实现 二,调用已有软件的API(百度,高德)
- vue 相关
1.vue v-for 循环一个数组,key值报错,但是数据是正常显示的 报错: v-for使用key,需要在key前加上:key;srcList是个数组,key值绑定不能是数据类型Object的it ...
- 《为大量出现的KPI流快速部署异常检测模型》 笔记
以下我为这篇<Rapid Deployment of Anomaly Detection Models for Large Number of Emerging KPI Streams>做 ...
- Google SRE
SRE_百度百科 https://baike.baidu.com/item/SRE/1141123 我们离Google SRE还有多远? - 简书https://www.jianshu.com/p/6 ...