首页 > 解决方案 > 如何根据angular2中复选框的选中和取消选中给出下拉值

问题描述

我有一个基于选择复选框的复选框,值必须显示在下拉列表中。但是在这里,当我“取消选择”两个复选框并再次选择这两个复选框并“取消选择”一个时,下拉值保持不变,它不会重置。谁能帮我解决这个问题?

演示

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("");
        }
    }

标签: angular

解决方案


用这个替换else部分:

let index = this._selectedFaxQueList.indexOf(faxQue.faxQueueID);
this._selectedFaxQueList.splice(index, 1);
this.dropDownFaxQueueList.splice(index,1);

所选元素已从 中删除_selectedFaxQueListindexOf()第二次(在您的代码中)执行时,它不会给出正确的结果。


推荐阅读