使用HBuilder开发移动APP:ajax调用接口数据

既然要做APP,与接口交互式少不了的,除非只是想做一个纯静态的APP。所以html5+的环境准备好后,我最先开始研究的就是如何与接口交互。

使用HBuilder新建示例教程后,里面会有一个ajax(网络请求)的列子,文件目录是examples/ajax.html。看了下这个文件的代 码,它的功能就是点击“提交”按钮后提交参数给接口,然后根据选择的返回数据格式,将一段字符串打印出来。我准备改造下这段代码,改由页面加载时调用列表 接口,并在APP里显示这段列表,毕竟这种情况应该经常会用到。

1。在list.html里增加一个访问这段列表的链接

<li class="mui-table-view-cell mui-plus-visible">
	<a class="mui-navigate-right" href="examples/ajaxlist.html"> ajax加载接口列表数据 </a> </li>

2。在examples目录新建文件ajaxlist.html

3。在这个文件里先写上展示列表的HTML框架。我是这么写的

<div id="records_count">
	//显示接口列表里的记录总数				
</div> <table id="list" border="1" width="100%" style="padding: 5px 10px;text-align: center;" > //显示列表数据 </table>

4。码一段JS代码,用于在页面加载时ajax调用接口

var network = true;
if(mui.os.plus){
	mui.plusReady(function () { if(plus.networkinfo.getCurrentType()==plus.networkinfo.CONNECTION_NONE){ network = false; } else { //调用接口数据的入口方法 getList(); } }); }

其中,getList就是调用接口数据的入口方法。下面来编写getList方法

var ajax = function() {
	//利用askh5的演示接口数据 var url = "http://askh5.com/try/data/starJson"; //发送数据,随便填,反正返回的数据都是那个样 var data = { name: "askh5.com", author: "gzdayou", description: "最好的HTML5社区..." }; respnoseEl.innerHTML = '正在请求中...'; $.post(url, data, success, 'json'); }; //加载时调用接口数据,加载列表 function getList() { if(network){ ajax(); }else{ mui.toast("当前网络不给力,请稍后再试"); } }

这里面调用的接口是在askh5的angularjs入门教程里看到的,是一段演示json数据。


$.post(url, data, success, 'json');


上面这个代码片段里的success就是post方法的回调方法,下面来编写success方法,来处理返回的数据

var respnoseEl = document.getElementById("records_count");
var list = document.getElementById("list"); //成功响应的回调函数 var success = function(response) { var str = JSON.stringify(response); console.log(str); //str = JSON.stringify(response); respnoseEl.innerHTML = "总记录:" + response.count; list.innerHTML = "<tr class='title'><td>字段1</td><td>字段2</td></tr>"; mui.each(response.records, function(key, elem) { console.log("elem.name:" + elem.Name ); var li = document.createElement("tr"); //li.setAttribute("id", key); var col1 = document.createElement("td"); col1.className = "col1" col1.innerHTML = elem.Name; li.appendChild(col1); var col2 = document.createElement("td"); col2.className = "col2" col2.innerHTML = elem.Club; li.appendChild(col2); list.appendChild(li); }); console.log("list" + list.innerHTML ); };

好大一坨代码用来生成一段列表,要是用angularjs会少些好多代码。。。
最后的效果就是:

833790daa512ef1f69f731c6a8d38880.png

转载于:https://www.cnblogs.com/h5fans/p/5665188.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值