我有一个基于选择复选框的复选框,值必须显示在下拉列表中。但是在这里,当我“取消选择”两个复选框,然后再次选择两个复选框并“取消选择”时,下拉列表值保持不变,不会重置。谁能帮我解决这个问题?
Ts:
setFaxId(index: number, faxQue: any) {
faxQue.isChecked = (faxQue.isChecked) ? false : true;
let filteredArr = this.faxqueuelists.filter(x=>x.faxQueueID == faxQue.faxQueueID);
if (faxQue.isChecked) {
this._selectedFaxQueList.push(faxQue.faxQueueID);
this.dropDownFaxQueueList.push(filteredArr[0]);
if(this.dropDownFaxQueueList.length == 1){
this.userGroup.get("DefaultFaxQueue").patchValue(faxQue.faxQueueID);
}
} else {
this._selectedFaxQueList.splice(this._selectedFaxQueList.indexOf(faxQue.faxQueueID), 1);
this.dropDownFaxQueueList.splice(this._selectedFaxQueList.indexOf(faxQue.faxQueueID),1);
this.userGroup.get("DefaultFaxQueue").patchValue("");
}
}
答案 0 :(得分:1)
以此替换else
部分:
let index = this._selectedFaxQueList.indexOf(faxQue.faxQueueID);
this._selectedFaxQueList.splice(index, 1);
this.dropDownFaxQueueList.splice(index,1);
所选元素已经从_selectedFaxQueList
中删除,当第二次执行indexOf()
时(在您的代码中),它将不会得到正确的结果。