《微信小程序开发从入门到实战》学习二十九

3.4 开发参与投票页面

3.4.4 使用label组件扩大单击区域

radio组件的单击区域很小,只有文字左侧的圆圈可以点击,实际使用者一般会期望点击文字也可以选中选项,用label组件包含radio组件,就可以实现点击文字也可以选项。

label组件内部可以包含switch、button、radio和checkbox这几种组件,cheeckbox是多选组件。

使用label组件扩大单击区域代码如下:

    <view class="option" wx:for="{{optionList}}" wx:key="index">

      <label>

        <checkbox value="{{index}}" disabled="{{isExpired}}">{{item}}</checkbox>

      </label>

    </view>

3.4.5 wx:if添加渲染

如何跟据不同的情况在页面使用不同的组件?通过wx:if条件渲染实现该 单选投票时使用radio组件,该多选投票时使用checkbox组件。

它的使用示例如下:

<view wx:if="condition">This will be displayed if condition is true</view>

<view wx:if="{{num > 0}}">The num is greater than 0</view>

<view wx:elif="{{num < 0}}">The num is less than 0</view>

<view wx:else>The num is 0</view>

之前看到if就意识到它怎么用。但书中角度还挺不一样的。

从名称角度来看wx:if和wx:for属性相似,但实现的是不同的功能。wx:if属性值是boolean类型,为true才会被渲染,wx:for属性值是array类型,每项内容都会被渲染。

从功能性和hidden属性相似,但使用场景,实现原理不同。hidden组件往往控制一个组件显示隐藏它控制组件永远会被渲染只是简单的显示和隐藏。wx:if是和wx:elif、wx:else结合使用,实现多个分支的条件渲染。可以控制组件是否被渲染。

3.4.6 使用checkbox多项选择器组件

checkbox组件和check-group组件结合使用,checkbox和radio组件很像,checkbox常用属性如下:

checkbox常用属性:

value                单个checkbox组件的值

checked            当前是否选中

disabled            是否禁用

color                 checkbox颜色

checkbox-group常用属性:

bindchange                内部checkbox选项改变时触发的事件处理函数,可以通过event.detail.value获取到选中的checkbox组件的值

修改WXML投票部分代码,添加多选组件,修改单选组件,相关代码如下:

  <checkbox-group wx:if="{{type === 'multiVote'}}" class="option-list" bindchange="onPickOption">

    <view class="option" wx:for="{{optionList}}" wx:key="index">

      <label>

        <checkbox value="{{index}}" disabled="{{isExpired}}">{{item}}</checkbox>

      </label>

    </view>

  </checkbox-group>

  <radio-group wx:else class="option-list" bindchange="onPickOption">

    <view class="option" wx:for="{{optionList}}" wx:key="index">

      <label>

        <radio value="{{index}}" disabled="{{isExpired}}">{{item}}</radio>

      </label>

    </view>

  </radio-group>

另外修改JS中的事件处理函数onPickOption,增加多选投票代码,修改单选投票,代码如下:

  onPickOption(e){

    if(this.data.type === 'multiVote'){

      //更新选择的选项(多选投票)

      this.setData({

        pickedOption: e.detail.value //checkbox-group 获取的值是一个array

      })

    }else {

      //更新选择的选项(多选投票)

      this.setData({

        pickedOption: [ //为了与多选投票统一,使用数组保存选择的选项

          e.detail.value //radio-gruop获取的值是一个string

        ]

      })

    }

修改AppData中的type值为multiVote,在模拟器中看到多选组件,预览效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/214821.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中combinations函数的用法

combinations是itertools模块提供的一个函数&#xff0c;用于返回迭代对象&#xff0c;迭代对象包含所有长度为r的组合。 函数语法形式为&#xff1a;combinations(iterable, r) iterable表示要生成组合的可迭代对象&#xff0c;例如列表、元组或字符串r表示每个组合的长度, 组…

详细解答T-SNE程序中from sklearn.manifold import TSNE的数据设置,包括输入数据,绘制颜色的参数设置,代码复制可用!!

文章目录 前言——TSNE是t-Distributed Stochastic Neighbor Embedding的缩写1、可运行的T-SNE程序2. 实验结果3、针对上述程序我们详细分析T-SNE的使用方法3.1 加载数据3.2 TSNE降维3.3 绘制点3.4 关于颜色设置&#xff0c;颜色使用的标签数据的说明cy 总结 前言——TSNE是t-D…

美创联合浙江省农业农村厅斩获“IDC中国20大杰出安全项目”!

11月23日&#xff0c;由IDC主办&#xff0c;以“安全风险管控&#xff1a;新形势下的数据安全保护”为主题的2023全球CSO网络安全峰会&#xff08;中国站&#xff09;隆重召开。 会上&#xff0c;IDC “中国20大杰出安全项目&#xff08;CSO20&#xff09;” 重磅揭晓&#xff…

C#FlaUI.UIA实现发送微信消息原理

一 准备 .NetFramework 4.8 FlaUI.UIA3 4.0.0 FlaUInspect V1.3.0 1下载FlaUInspect https://github.com/FlaUI/FlaUInspect FlaUInspect V1.3.0 百度网盘下载 2 NuGet 引用 flaUI.UIA3 4.0.0 二代码部分 1 引用FlaUI using FlaUI.Core; using FlaUI.Core.Automatio…

Table和HashBasedTable的使用案例

------------------- 1.普通使用 package org.example.testhashbasedtable;import com.google.common.collect.HashBasedTable; import com.google.common.collect.Table;import java.util.Map;public class TestHashBasedTable {public static void main(String[] args) {Ta…

HBase数据模型杂谈

1.概述 HBase是一个稀疏、多维度、排序的映射表&#xff0c;这张表的索引是行键、列族、列限定符和时间戳。 每个值是一个未经解释的字符串&#xff0c;没有数据类型。用户在表中存储数据&#xff0c;每一行都有一个可排序的行键和任意多的列。表在水平方向由一个或者多个列族…

【C++高阶(三)】AVL树深度剖析模拟实现

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:C从入门到精通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习C   &#x1f51d;&#x1f51d; AVL树 1. 前言2. AVL树的概念以及特性3. AVL树模…

查企业联系电话的方法

对于销售来说&#xff0c;获取准确、全面的企业联系方式&#xff0c;无疑是开发客户的基础与保障&#xff0c;因为任凭能力再高&#xff0c;说服能力多强&#xff0c;没有与客户接触的机会&#xff0c;这些都是无稽之谈。但是大家都知道&#xff0c;道理都懂&#xff0c;但是要…

Java二级医院区域HIS信息管理系统源码(SaaS服务)

一个好的HIS系统&#xff0c;要具有开放性&#xff0c;便于扩展升级&#xff0c;增加新的功能模块&#xff0c;支撑好医院的业务的拓展&#xff0c;而且可以反过来给医院赋能&#xff0c;最终向更多的患者提供更好的服务。 系统采用前后端分离架构&#xff0c;前端由Angular、J…

【MySQL】数据库基础操作

&#x1f451;专栏内容&#xff1a;MySQL⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、数据库操作1、创建数据库2、查看所有数据库3、选定指定数据库4、删除数据库 二、数据表操作1、创建数据表2、查看所有表3、…

H5游戏和小程序游戏的区别是什么,分别有什么优势?

H5游戏和小程序游戏都是基于互联网的游戏形式&#xff0c;但它们在技术实现、发布平台和用户体验等方面存在一些区别。 技术实现&#xff1a; H5游戏&#xff1a; 使用HTML5、CSS3、JavaScript等Web技术进行开发。这意味着玩家可以通过任何支持Web浏览器的设备访问游戏&#…

11-23 SSM4

Ajax 同步请求 &#xff1a;全局刷新的方式 -> synchronous请求 客户端发一个请求&#xff0c;服务器响应之后你客户端才能继续后续操作&#xff0c;请求二响应完之后才能发送后续的请求&#xff0c;依次类推 有点&#xff1a;服务器负载较小&#xff0c;但是由于服务器相应…