组件除了label和value,还可以传递其他参数,用extra进行传递:
例如在给u-select绑定的array赋值时,extra用来保存每个数据的一个额外属性
<u-select :list="industryCodeList" @confirm="confirm"></u-select>
其中industryCodeList像这样赋值:
this.myhttp.post('device', '/basic/region/xxxxlist', {
dictKey: dictKey,
parentId: parentId
}).then((res) => {
if (res.status == 0) {
var list = [];
for (var i in res.data) {
var object = {};
object.label = res.data[i].dictValue; // 展示label
object.value = res.data[i].id; // 用id查询行业小类
object.extra = res.data[i].dictCode; // 传递额外的参数
list.push(object);
}
this.industryCodeList = list;
} else {
uni.showToast({
title: res.message,
icon: 'none'
});
}
});
这样在选项被选中的时候,就可以把label、value、extra三个参数取出来使用了:
confirm(e) {
this.form.industryCode = JSON.parse(JSON.stringify(e[0])).label; // 用于页面上实际展示
this.industryCode = JSON.parse(JSON.stringify(e[0])).value;
this.industryCodeSubmit = JSON.parse(JSON.stringify(e[0])).extra; // 使用extra额外的传参进行传递
},