W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
復(fù)選框。 對齊 ant design checkbox 的設(shè)計,當(dāng) ctrlChecked===undefined (默認(rèn))時 am-checkbox 是非受控組件,否則為受控組件。
{
"defaultTitle": "am-checkbox",
"usingComponents": {
"list": "mini-ali-ui/es/list/index",
"list-item": "mini-ali-ui/es/list/list-item/index",
"am-checkbox": "mini-ali-ui/es/am-checkbox/index",
"button": "mini-ali-ui/es/button/index"
}
}
<list>
<view slot="header">
列表+復(fù)選框(非受控)
</view>
<block a:for="{{items}}">
<list-item
thumb=""
arrow="{{false}}"
index="{{index}}"
key="items-{{index}}"
last="{{index === (items.length - 1)}}"
>
<view style="display: flex; align-items: center;">
<am-checkbox data-id="{{item.id}}" id="{{item.id}}" value="{{item.value}}" disabled="{{item.disabled}}" checked="{{item.checked}}" />
<label for="{{item.id}}">{{item.title}}</label>
</view>
</list-item>
</block>
</list>
<view style="padding: 24rpx 0 0 24rpx;">
<button capsuleSize="small" shape="capsule" type="primary" onTap="checkedON" style="margin-left: 20rpx;">全選</button>
<button capsuleSize="small" shape="capsule" type="primary" onTap="checkedOFF" style="margin-left: 20rpx;">不全選</button>
</view>
<list>
<view slot="header">
列表+復(fù)選框(受控)
</view>
<block a:for="{{items1}}">
<list-item
thumb=""
arrow="{{false}}"
index="{{index}}"
key="items-{{index}}"
last="{{index === (items.length - 1)}}"
>
<view style="display: flex; align-items: center;">
<am-checkbox data-id="{{item.id}}" id="{{item.id}}" value="{{item.value}}" disabled="{{item.disabled}}" ctrlChecked="{{item.ctrlChecked}}" onChange="onChange" />
<label for="{{item.id}}">{{item.title}}</label>
</view>
</list-item>
</block>
</list>
Page({
data: {
items: [
{ value: 'a', title: '復(fù)選框-默認(rèn)未選中', id: 'checkbox1' },
{ checked: true, value: 'b', title: '復(fù)選框-默認(rèn)選中', id: 'checkbox2' },
{ checked: true, disabled: true, value: 'c', title: '復(fù)選框-默認(rèn)選中disabled', id: 'checkbox3' },
],
items1: [
{ ctrlChecked: false, disabled: false, value: 'd', title: '復(fù)選框-默認(rèn)未選中', id: 'checkbox4' },
{ ctrlChecked: true, disabled: true, value: 'e', title: '復(fù)選框-默認(rèn)未選中disabled', id: 'checkbox5' },
{ ctrlChecked: true, value: 'f', title: '復(fù)選框-默認(rèn)選中', id: 'checkbox6' },
],
},
onChange(e) {
const { id } = e.currentTarget.dataset;
const { value } = e.detail;
const { items1 } = this.data;
items1.forEach((element) => {
if (element.id === id) {
// eslint-disable-next-line no-param-reassign
element.ctrlChecked = value;
}
});
this.setData({
items1
});
},
// 全選
checkedON() {
this.checkedAll(true);
},
// 全不選
checkedOFF() {
this.checkedAll(false);
},
checkedAll(status) {
const { items1 } = this.data;
items1.forEach((element) => {
// eslint-disable-next-line no-param-reassign
element.ctrlChecked = status;
});
this.setData({
items1
});
},
});
屬性 | 類型 | 默認(rèn)值 | 可選值 | 必填 | 描述 |
---|---|---|---|---|---|
value | String | - | - | 否 | 組件值,選中時 change 事件會攜帶的 value。 |
ctrlChecked | Boolean | undefined | true,false | 否 | 當(dāng) ctrlChecked 不等于 undefined 時 am-checkbox 是受控組件。需要啟用 component2 編譯。 |
checked | Boolean | false | true,false | 否 | 當(dāng)前是否選中,可用來設(shè)置默認(rèn)選中。 |
disabled | Bollean | false | true,false | 否 | 是否禁用。 |
onChange | (e: Object) => void | - | - | 否 | change 事件觸發(fā)的回調(diào)函數(shù)。 |
id | String | - | - | 否 | 與 label 組件的 for 屬性組合使用。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: