一、基本思路
1、通过改变数组长度动态增删组件
|
1
2
3
|
<block wx:for="{{数组}}"> 组件</block> |
2、点击添加按钮,增加数组的成员,组件相应增加
点击删除按钮,减少数组的成员,组件相应删除
二、示例
wxml:
|
1
2
3
4
5
6
7
|
<view> <button bindtap='onTapAdd'>添加input组件</button> <button bindtap='onTapDel'>删除Input组件</button> <block wx:for="{{obj}}" wx:key> <input value="{{item}}"></input> </block></view> |
js:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
data: { obj:[] }, /***增加组件 */ onTapAdd:function(e){ var temp=this.data.obj; temp.push(this.data.obj.length); this.setData({ obj:temp }) }, /***** 删除最后一个组件,也可以修改删除指定组件*/ onTapDel:function(e){ var temp = this.data.obj; temp.pop(this.data.obj.length); this.setData({ obj: temp }) }, |
PS:微信小程序动态添加view
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
//index.html <button bindtap='clickMe'> 添加</button> <input type='input' value='{{value}}' placeholder='请输入' bindblur='getValue'></input> <view wx:for="{{info}}" wx:key="key"> <view > {{info[index].title}} </view> </view>//index.js data: { info:[], value:'', }, clickMe:function(){ var info = this.data.info; var title = this.data.title; var info2 = new Object(); info2.title = title; info.push(info2); console.log(info) this.setData({ info:info }) },getValue:function(e){ this.setData({ title:e.detail.value, }) }, |