如何基于angular2中复选框的选中和取消选中给出下拉值

时间:2019-04-08 04:59:33

标签: angular

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

DEMO

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

1 个答案:

答案 0 :(得分:1)

以此替换else部分:

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

所选元素已经从_selectedFaxQueList中删除,当第二次执行indexOf()时(在您的代码中),它将不会得到正确的结果。