@beduin01

Как не получить бесконечный цикл при обходе JSON (Vue-JS)?

Собственно читаю JSON и выполняю переборку элементов. Если выбрано больше `MaxAllowedChoice` то мне надо дисейблить остальные. Для этого я хочу создать динамическое свойство isDisabled. Динамическое потому что не хочу раздувать JSON.
Но видимо его не в том месте создаю т.к. у меня в консоли Vue.JS ругается на бесконечный цикл. Как мне правильно сделать обработку списка чекбоксов, чтобы можно было не больше трех элементов выделить. И можно было бы снять с элементов выделение и выделить другие.

processOneQuestion: function (question)
              {
                var isSelectedCount = 0;

                for(var answer of question.answers)
                {
                  answer.isDisabled = true; // вот создал
				  if(answer.isSelected)
                  {
                    isSelectedCount++;
                  }

                  if(question.MaxAllowedChoice == isSelectedCount)
                  {
                    console.log("isSelectedCount : " + isSelectedCount + " | question.MaxAllowedChoice: " + question.MaxAllowedChoice);
                    if(!answer.isSelected) // disable unselected
                    {
                       answer.isDisabled = true;

                    }
                  }

                }


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

Если да, то как это обойти?
  • Вопрос задан
  • 241 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы