在哪里存储选定的元素列表?

Where to store selected list of elements?

我有一些元素列表:

let list1 = [1,2,3,4]; 
let list2 = [1,2,3,4]; 
let list3 = [1,2,3,4]; 

我在循环中互相迭代:

<div *ngFor="let el of list1" (click)="set(el)">{{el}</div>
<div *ngFor="let el of list2" (click)="set(el)">{{el}</div>
<div *ngFor="let el of list3" (click)="set(el)">{{el}</div>

当我点击元素 <div> 时,我必须将选定的值存储在这样的地方:

selectedFilters = {list1: [1], list2: [2,3], list3: [4]}

怎么做?我应该创建三个模型 class:

class FilterSetter {
   set();
   unset();
}

class FilterList1 extends FilterSetter {
    selected = [];
}

class FilterList2 extends FilterSetter {
   selected = [];
}

class FilterList3 extends FilterSetter {
    selected = [];
}

我不喜欢我的解决方案,因为如果将来要添加列表,它迫使我创建很多 classed。

我还需要得到包含所有选定元素的输出 json

好吧,向您的 set 添加另一个参数,例如 source 以了解数据来自哪个来源。

编辑:尽量不要使用 set 作为名称,使用 addSelectedElem

mySelectedElems: {
    list1: [];
    list2: [];
    list3: [];
}; // if you know already the names of the list. idk

addSelectedElem(elem, source) {
    mySelectedElems[source] = mySelectedElems[source] || []
    mySelectedElems[source].push(elem)
}