一、基本思路
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, }) }, |