Apicloud学习第四天

时间:2023-01-17 20:51:29

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//设置步数
}