本人刚入坑vue不久,在双向绑定后取得了选中的值,然后实现全选功能时,发现以前写的一个全选功能在这里失效了。在我去掉v-model指令时,全选功能就可以了,请问v-model和:checked有什么冲突吗?
本人刚入坑vue不久,在双向绑定后取得了选中的值,然后实现全选功能时,发现以前写的一个全选功能在这里失效了。在我去掉v-model指令时,全选功能就可以了,请问v-model和:checked有什么冲突吗?
大概意思,凑活看?
<input v-for="ckoption in checkOptions" :value="ckoption" >
data: {
checkOptions: ['jack','john','mike'],
},
......
all: function() {
this.checkNames = this.checkOptions
}
我试了有冲突,我是这样写的
在all 方法中获取所有的input type为checked的然后,循环设置它们的checked为this.isCheck
methods: {
all: function(){
var that=this;
this.isCheck=!this.isCheck;
var box=document.querySelectorAll('input[type="checkbox"]');
[].forEach.call(box,function(item,index){
item.checked=that.isCheck;
})
}
}
all(isFlag){
this.isCheck=isFlag
}
实现全选,调用的时候@click=all(true);
取消全选,调用的时候@click=all(false);
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
4 回答4.6k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
我写了一个例子给你,进下面这个网址把代码贴上去就可以运行了,代码有点糙,凑活着看吧,我也接触Vue不久,一起进步吧!
https://jsfiddle.net/Lxqobgu8/