vueJs新手處理表單全選有什麼好的建議么?
vueJs新手處理表單全選有什麼好的建議么?需要遍歷所有checkbox的value?
借用師兄的實現,供參考: Edit fiddle - JSFiddle
&
&
#& | &Name& | &Age& | &
---|---|---|
&全選{{allChecked}}& | &||
&& | &{{item.name}}& | &{{item.age}}& | &
//代碼
var _list = [{name:"小明",age:23, checked: true},{name:"小紅",age:20, checked: true},{name:"ddd",age:30, checked: true}];
new Vue({
el: ".app",
computed: {
allChecked: {
get: function(){
return this.checkedCount == this.list.length;
},
set: function(value){
this.list.forEach(function(item){
item.checked = value
})
return value;
}
},
checkedCount: {
get: function(){
var i = 0;
this.list.forEach(function(item){
if(item.checked == true) i++;
})
return i;
}
}
},
data:{
list: _list
}
});
我用的是指令
export default {
"check-all": {
twoWay: true,
params: ["checkData"],
bind() {
/**
* 如果所有的列表的checked屬性都為true,則選中全選框,否則不選中全選框
*/
this.vm.$watch(this.params.checkData, (checkData) =&> {
if (checkData.every((item) =&> item.checked)) {
this.set(true);
} else {
this.set(false);
}
}, { deep: true });
},
update(checkAll) {
/**
* 如果全選框被選中,則將列表的所有checked屬性轉為true,否則轉為false
*/
if (checkAll) {
this.vm[this.params.checkData].forEach((item) =&> {
item.checked = true;
});
} else {
this.vm[this.params.checkData].forEach((item) =&> {
item.checked = false;
});
}
},
},
};
&
&
&
{{item.text}}
&
推薦閱讀:
※如何避免工作兩年重複一年工作經驗?
※如此多的前端框架是如何起名字的?
TAG:前端開發 | JavaScript | Vuejs |