Как реализовать очередь в угловых? - PullRequest
0 голосов
/ 16 ноября 2018

web page

описание изображения:

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

Проблема:

У меня есть более 30 вариантов работы. Я хочу отслеживать все предметы. всякий раз, когда элемент нажимается, он должен быть вставлен. и при повторном нажатии он должен быть удален. если элемент уже активен, и если на него снова щелкнуть, его следует удалить. некоторые опции похожи на другие комбинации опций.

Что я делал до сих пор:

Я реализовал два метода для этого: выполнить и завершить, чтобы выполнить вставку и удаление последнего нажатого элемента. Если я пойду с тем же процессом, то будет много чего еще, что я не хочу реализовывать. Я подумал реализовать очередь, которая поможет мне отслеживать все параметры, выбранные пользователем.

Как реализовать очередь в угловую 5 или более? Если есть какой-то другой лучший подход, который я могу пройти, предложите мне.

Любая помощь будет высоко ценится.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Я нашел решение. Пожалуйста, попробуйте

Создать класс

 export class Queue<T> {
  _store: T[] = [];
  public push(val: T) {
    this._store.push(val);
  }
  public pop(): T | undefined {
    return this._store.shift();
  }
}

Вы можете передать любой тип T параметру класса. Это ограничение класса

и вот мой демонстрационный класс для передачи в качестве параметра в очередь

export class Demo{

    public val1:number;
    public val2:string;

}

Как это использовать

    let Qu:Queue<Demo>  = new Queue<Demo>();
    Qu.push({val1:1, val2:"Asanga1"});
    Qu.push({val1:2, val2:"Asanga2"});

    console.log(Qu.pop());

Вот вывод в консоль

>Object {val1: 1, val2: "Asanga1"}

Так что вытащите первый в очереди

Пожалуйста, попробуйте.

0 голосов
/ 16 ноября 2018

Очередь в JavaScript:

// initialization
const queue = []
// insertion
queue.unshift(/* element here */)
// removing
const removedElement = queue.shift()
// first element
const firstElement = queue[0]
// last element
const lastElement = queue[queue.length - 1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...