Где хранить выбранный список элементов? - PullRequest
0 голосов
/ 17 июня 2020

У меня есть несколько списков элементов:

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

Я повторяю друг друга в l oop:

<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 FilterSetter {
   set();
   unset();
}

class FilterList1 extends FilterSetter {
    selected = [];
}

class FilterList2 extends FilterSetter {
   selected = [];
}

class FilterList3 extends FilterSetter {
    selected = [];
}

Мне не нравится мое решение, потому что оно вынудило меня создать много классифицированных списков, которые будут добавлены в будущем.

Также я нужно получить вывод json со всеми выбранными элементами

1 Ответ

1 голос
/ 17 июня 2020

ну, добавьте еще один параметр в свой set что-то вроде источника, чтобы знать, из какого источника пришли данные.

РЕДАКТИРОВАТЬ: старайтесь не использовать 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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...