前端小组第四次培训2024/3/23
目标
- 了解针对数组的灵活渲染,for循环渲染
- 掌握对输入事件的处理,对输入数据进行保存
- for循环渲染与输入事件配合,定位特定输入框
事件数据保留
我们想要将输入框中输入的数据保留下来,则需对输入事件进行处理。
示例代码
<input bindinput="saveData" style="background-color: blueviolet;"/> <text>{{content}}</text>
|
Page({ data: { content: "nothing" }, saveData: function(e) { this.setData({ content: e.detail.value }); } })
|
for循环渲染
for循环渲染可以针对数组进行渲染,数组有多少元素,我们就渲染几个组件。
想要渲染哪个数组,就用插值表达式插入wx:for=""
中即可,索引wx:key=""
我们一般用下标index。
这里我们对obj_arr
对象数组进行了for循环渲染。obj_arr
数组中包含了两个元素,所以渲染出了两个view
。
示例代码
<view wx:for="{{obj_arr}}" wx:key="index"> <text>{{item.xuefen}} {{item.chengji}}</text> </view>
|
Page({ data: { obj_arr: [ { xuefen: 2, chengji: 80 }, { xuefen: 4, chengji: 90 } ] } })
|
固定科目数量的for循环渲染与输入成绩保存
<view class="cell" wx:for="{{subjects}}" wx:key="index"> <text>科目{{index+1}}</text> <input class="inputsth" type="digit" bindinput="saveXueFen" data-index="{{index}}"/> <input class="inputsth1" type="digit" bindinput="saveFenShu" data-index="{{index}}"/> </view> <button bind:tap="show">点击输出subjects</button>
|
.cell { display: flex; margin-bottom: 10px; //每个cell元素将在底部余出10px的空间 }
.inputsth { background-color: aqua; }
.inputsth1 { background-color: bisque; }
|
Page({ data: { subjects: [ { xuefen: 0, fenshu: 0 }, { xuefen: 0, fenshu: 0 }, { xuefen: 0, fenshu: 0 }, { xuefen: 0, fenshu: 0 } ] }, show: function() { console.log(this.data.subjects); }, saveXueFen: function(e) { let i = e.currentTarget.dataset.index; this.data.subjects[i].xuefen = e.detail.value; }, saveFenShu: function(e) { let i = e.currentTarget.dataset.index; this.data.subjects[i].fenshu = e.detail.value; } })
|