第二个画面是https调用服务器请求返回数据的,跟踪后台服务器日志,发现并没有访问到服务器。猜测应该是小程序在微信预览上的bug,哪位大侠有遇到此类问题,帮忙解决一下,小编不胜感激。

通过将”{{motto}}”嵌入视图层代码中,界面会显示”Hello World”

向前向后插入新的数据

Page({ data: { list:[{ id:1, name:'应季鲜果', count:1 },{ id:2, name:'精致糕点', count:6 },{ id:3, name:'全球美食烘培原料', count:12 },{ id:4, name:'无辣不欢生猛海鲜', count:5 }] }})

我们初始化一些数据,我们需要对list的添加新的数据里,需要用到JavaScript concat()的方法,concat()
方法用于连接两个或多个数组,该方法不会改变现有的数组。其实我们的所说的向前向后插入数据,其实也就是把两个数组合拼起来,组成一个新的数组,然后再使用this.setData()即可渲染到页面上。我们看一下在微信小程序里的代码。

向前插入数据demo

 //向前增加数据 add_before:function (){ //要增加的数组var newarray = [{ id:6, name:'向前增加数据--'+new Date().getTime() , count:89}]; //使用concat()来把两个数组合拼起来this.data.list = newarray.concat(this.data.list); //将合拼之后的数据,发送到视图层,即渲染页面//大伙请记录,修改了数据后,一定要再次执行`this.setData()`,页面才会渲染数据的。this.setData({ 'list': this.data.list }); }

向后插入数据demo

 //向后增加数据 add_after:function (){ //要增加的数组 var newarray = [{ id:5, name:'向后增加数据--'+new Date().getTime() , count:89 }]; this.setData({ 'list':this.data.list.concat }); },

细心的小伙伴应该会发现,这两段在用concat()合拼数据时,concat括号里的数据是不一样的。向前向后插入数据的区别就在这里了。

//假设这一段是我们要新增的数组var newarray = [{ id:5, name:'向后增加数据--'+new Date().getTime() , count:89}];//向前--用newarray与this.data.list合拼this.data.list = newarray.concat(this.data.list);//向后--用this.data.list与newarray合拼this.data.list = this.data.list.concat;

图片 1

1:
视图层嵌入的是{{motto}}而不是{{data.motto}},微信框架默认设定视图层绑定的变量定义在Page对象的data属性中,也就是说,如果变量需要绑定到视图层,一定要定义data属性

demo地址:

  1. 第一页面可正常访问,第二界面一直处于“加载中…”
setData({ motto:'Hello My World' })

删除某条数据

有增有改也必有删。删除需要用到JavaScript splice()方式,splice()
方法向/从数组中添加/删除项目,然后返回被删除的项目。

//删除 remove:function { var dataset = e.target.dataset; var Index = dataset.index; //通过`index`识别要删除第几条数据,第二个数据为要删除的项目数量,通常为1 this.data.list.splice; //渲染数据 this.setData({ list:this.data.list }); }
  1. 使用微信扫描,可以访问界面

可以将变量绑定到视图组件的hidden属性中,通过更改组件hidden属性的值,可以控制组件是否显示。

图片 2图片 3

  1. 发布手机预览

image标签的src属性绑定了userInfo.avatarUrl变量,并在onLoad方法中通过调用setData方法设置userInfo

总结

今天我们主要讲了增修删清空,其实对数组的操作还有很多方式的,可以看以下截图。

图片 4

具体的每一个的操作方法,可以去国内的w3s多学习下。

demo地址:

图片 5

最近大家对微信小程序开发热情大涨,结识了不少对微信小程序技术开发的牛人,也有一些刚入行的新手,特此我建立了一个微信小程序技术交流圈子,希望给大伙有一个纯洁的技术交流圈子,技术交流,提升自我。我们也会不定期发布一些微信小程序的学习教程。此群的目标为纯的技术交流群,不死于广告之中,已开启了群主邀请确认机制,需要入群的小伙伴,请加我的个人微信amwhuang

文章首发地址:数组操作–微信小程序学习教程

图片 6

可以将变量绑定到视图组件的属性值上(如上面image标签的src属性),注意在绑定到属性时,需要在外面加入一对双引号。

相信在小程序推出公测之后,很多小伙伴都已经抓紧申请注册小程序了。在开发阶段中也碰到了很多的问题,例如wx.request数据请求不成功,在数组操作时,不知道如何往数组里push数据,input如何监听用户输入的状态,css的background-image无法获取本地资源等等,本博客会出一个专题,给碰到这些问题的小伙伴解决思路。

图片 7

一般来说,wx:if 有更高的切换消耗而 hidden
有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用
hidden更好,如果在运行时条件不大可能改变则 wx:if 较好。

demo数组操作的例子路径:/pages/array/array.wxml

wxgzh:ludong86

显示字符串内容

清空数据

增修删之后,还得再来一个清空数据呀。

//清空 clear:function (){ //其实就是让数组变成一个空数组即可 this.setData({ list:{} }); } 
  1. 登录小程序,绑定开发者,获取AppID

  2. 下载微信小程序示例-新片预告

<view wx:if="{{length > 5}}"> 1 </view><view wx:elif="{{length > 2}}"> 2 </view><view wx:else> 3 </view>

今天我们主要讲的是,数组操作。相信对于用过vuejs、reactjs等mvvm框架的童鞋,微信小程序的数组操作就显得很简单啦,原理是一样的。

6.
在微信web开发者上可以正常使用video,能够正常访问到node服务,访问到mysql数据库,并获取到数据,返回到小程序

显示图片在开发工具默认生成的程序首页,显示了用户的头像,相关代码如下:

这是简单做的一个demo,已经上传到github,到时大伙可以直接下载。我们主要讲在数组中常用的一些操作方法,对数组向前向后插入新的数据、修改数组、删除数组、清空数组,其他的一些操作方式,我会给大伙学习思路。

1.
小程序注册,目前还未开通个人注册,主体类型为企业、政府、媒体、其他组织

通常来说可以让UI层和逻辑层互相暴露接口给对方,不过出于对灵活性和扩展性的考虑,会引入中间层来进行管理,这样可以避免UI层和逻辑层之间的直接依赖。

修改数组

对展示的数据进行修改,在开发过程是常见得不在常见的事情啦。

 //修改数组 edit:function { //这个参数“e”的具体作用,请参考微信小程序官方提供的说明,地址为https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html?t=20161107 var dataset = e.target.dataset;var Index = dataset.index; //在通过在wxml页面里使用 data-index="{{index}}"传递过来的,是为识别正在编辑修改哪个数组。 //我们要修改的数组this.data.list[Index].name = '修改了内容'+new Date().getTime(); //将合拼之后的数据,发送到视图层,即渲染页面//大伙请记录,修改了数据后,一定要再次执行`this.setData()`,页面才会渲染数据的。this.setData({ list:this.data.list}); }

图片 8

特别注意:不要直接写 checked=”false”,其计算结果是一个字符串,转成
boolean 类型后代表真值。

图片 9图片 10图片 11

假设要做一个学生管理程序,页面使用列表来展示用户数据,当用户点击某一学生信息时,进入该学生的详情页页面。当获取到用户的点击事件时,必须要知道点击的是哪一个学生的数据,这时可以将学生的id绑定到视图组件的id属性中来进行数据关联。

图片 12

<checkbox checked="{{false}}"> </checkbox>

发表评论

电子邮件地址不会被公开。 必填项已用*标注