@beduin01

Как проверить, что все пункты были выбраны?

Предположим, у меня есть много секций вида:

data: 
  {
    user_input_1 : 
    {
     isFilled : false,
     val_1 : null,
     val_2 :null,
     val_3 : null,
    },

    user_input_2 : 
    {
     isFilled : false,
     val_1 : null,
     val_2 :null,
     val_3 : null,
    },
}

Как организовать проверку их всех на то, заполнены ли они? Стоит ли факт их заполнения проверять в computed? Типа:

computed :
{
  // как-то тут перебирать все и выставлять флаг заполненности
}

Или может как-то везде on-changed сделать функцию и в ней при изменении проверку организовывать?

Или есть лучший вариант?
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Соберите все user_input_* в один объект (user_inputs, например), и тогда можно будет сделать так:

computed: {
  isFilledAll() {
    return Object.values(this.user_inputs).every(n => n.isFilled);
  },
},

Или под "заполнены" вы понимаете не-null значения свойств val_*? Тогда отдельные isFilled не нужны:

isFilledAll() {
  return Object.values(this.user_inputs).every(n => Object.values(n).every(m => m !== null));
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы