我有一个复选框组,我想获取所有选中的项目。我正在尝试将一个数组传递给一个函数,以便我可以获取所有已检查的项目,但它不起作用。
checkedCategory: Array<number>;
contains(checkedArr: Array<number>, id: number): boolean {
if (checkedArr instanceof Array) {
return checkedArr.indexOf(id) > -1;
} else if (!!checkedArr) {
return checkedArr === id;
}
return false;
}
private add(checkedArr: Array<number>, id: number) {
if (!this.contains(checkedArr, id)) {
console.log('add: ' + checkedArr);
if (checkedArr instanceof Array) {
checkedArr.push(id);
} else {
checkedArr = [id];
}
}
}
private remove(checkedArr: Array<number>, id: number) {
const index = checkedArr.indexOf(id);
if (!checkedArr || index < 0) {
return;
}
checkedArr.splice(index, 1);
}
toggleCategory(id: number) {
if (this.contains(this.checkedCategory, id)) {
this.remove(this.checkedCategory, id);
} else {
this.add(this.checkedCategory, id);
}
}
我的复选框中有一个(单击)事件,它将调用 togglecategory
(click)="toggleCategory(category.id)"
然后,当我尝试 console.log 'checkedCategory' 时,它是未定义的。
我有 3 个复选框组,我想重用“包含/添加/删除”功能,这就是我想传递一个数组的原因。
谢谢