官网代码
checkboxChange: function(e) {
var items = this.items;
var values = e.detail.value;
for (var i = 0, lenI = items.length; i < lenI; ++i) {
items[i].checked = false;
for (var j = 0, lenJ = values.length; j < lenJ; ++j) {
if (items[i].value == values[j]) {
items[i].checked = true;
break
}
}
}
},
a() { //动态修改数组中的checked的值为false
for (var i = 0; i < this.items.length; i++) {
this.items[i].checked = false
}
console.log(this.items)
} // 实现了全选取消功能
我自己的代码
aa(){
for(var i=0;i<this.TeacherData.length;i++){
this.TeacherData[i].checked = false;
}
//点击触发全选取消
console.log(this.TeacherData)
},
checkboxChange(e) { //监听checkbox发生变化时触发
var items = this.TeacherData;
var values = e.detail.value;
this.chekValues = values
for (var i = 0, lenI = items.length; i < lenI; ++i) {
items[i].checked = false;
for (var j = 0, lenJ = values.length; j < lenJ; ++j) {
if (items[i].teacher == values[j]) {
items[i].checked = true;
break
}
}
}
},
//我自己的代码却没有实现全选取消,奇了怪了。checked的绑定也没问题
8 个回复
2***@qq.com
楼主解决了吗?我也是遇到了这个问题,虽然有些地方使用延时的v-if解决了但是效果不是太好,有些地方没有起作用!
Trust - 少说废话
提供下完整的测试代码,另外参考下最新的示例,以前的示例我记得有些小问题。
hello uni-app checkbox
4***@qq.com
官网的例子 一模一样 复制下来
var items = this.promStock,
values = e.detail.value;
for (var i = 0, lenI = items.length; i < lenI; ++i) {
const item = items[i]
if (values.includes(item.id)) {
console.log(111)
this.$set(item, 'checked', true)
} else {
console.log(222)
// this.$set(item, 'checked', false)
}
}
我不改成false 点击复选框 会一直是选中状态才对 但是他还能取消选定
2021-01-04 11:12
a***@qq.com
解决了吗?
现在我也是遇到这个问题,使用checkbox勾选了值,更新数组这个勾选值没有清除掉。
重庆金城武 - 一个卑微前端
我也遇到这个问题了 ,值改成false但是还是为选中状态,也使用了$set方法更新了代码 但是视图还是没更新,楼主怎么解决的
1***@qq.com
我也是同样的问题 checked赋值打印为false 但是页面还是勾选状态
1***@qq.com - chenghui
我的个人项目已经上线了,我使用的是替换checkbox的,其实思想一样的。
1、Android的(软著没申请下来,暂时上不了架):http://d.firim.top/tc7b?utm_source=fir&utm_medium=qrhttp://d.firim.top/tc7b?utm_source=fir&utm_medium=qr
2、iOS已经上架搜索:猫云—优质贴心的宠物平台
3、顺便也给你们给链接吧,例如iOS做唤起第三方或某个APP时可以使用到 https://apps.apple.com/cn/app/猫云-优质贴心的宠物社交平台/id1474103355
8***@qq.com
$forceUpdate() 和$set()都不好使的使用,在视图部分加一个key,就会得到预期的效果,代码如下图所示
a***@163.com
$forceUpdate() 和$set()都不好使,在视图部分加一个key我也试过,不好使,最后是用this.$nextTick解决的,
data里
someShow: true,
refresh() {
this.someShow = false
this.$nextTick(function() {
this.someShow = true
})
},
将 v-if=“someShow” 放 checkbox-group 上
在全选事件里调用 this.refresh() 方法
可以看看这个博客https://www.csdn.net/tags/MtTaMg3sMTg0MTg3LWJsb2cO0O0O.html
没有的没有
牛牛牛
2022-06-20 17:16
就想混口饭吃
牛逼牛逼牛逼
2023-08-14 15:19