angular-zorro nzShowCheckbox需要點選兩次才能選中 、 Indeterminate的含義
阿新 • • 發佈:2021-02-10
技術標籤:js
一、nzShowCheckbox需要點選兩次才能選中
原因:
data.checked的真假值切換已經自動完成了,不應該再次切換
二、Indeterminate的含義
當indeterminate的值為真時,強制將選中狀態變為 - (隻影響介面顯示,不影響資料)
indeterminate何時為真?
除以下兩個狀態之外
(1)所有的單選框選中
(2)所有的單選框未選中
即:部分選中
附:
itemList是列表資料
checkAll() { if(this.allChecked_table){ this.itemList.forEach(i=>i.checked=true) }else{ this.itemList.forEach(i=>i.checked=false) } this.ensure_state_indeterminate_table() } checkOne() { this.ensure_state_indeterminate_table() this.ensure_state_allChecked_table() } ensure_state_indeterminate_table(){ let is_all_check = this.itemList.every(i=>i.checked==true) let is_all_not_check = this.itemList.every(i=> (i.checked==false || i.checked==undefined || i.checked==null)) if(is_all_check || is_all_not_check){ this.indeterminate_table = false }else{ this.indeterminate_table = true } } ensure_state_allChecked_table(){ let is_all_not_check = this.itemList.every(i=> (i.checked==false || i.checked==undefined || i.checked==null)) if(is_all_not_check) { this.allChecked_table = false; }else{ this.allChecked_table = true; } }