在哪里存储选定的元素列表?
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)
}
我有一些元素列表:
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)
}