Apicloud学习第四天

Posted 健伟博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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学习第四天的主要内容,如果未能解决你的问题,请参考以下文章

学习第十四天(2019-11-27)

Python学习第四天学习写的小案例(主要是针对 分支/循环的学习)

学习php的第四天

python学习第四天

ApiCloud+Vue.js浅扩展第一弹

Java学习第二十四天