заменить цикл средствами vue.js

mstdmstd

Новичок
Всем привет,

В Laravel5.5/vue.js2.5 проекте есть форма(newUserChat) с несколькими полями и есть дополнительный список юзеров, выбранные для этого списка.
Кроме данных этой формы надо проверить, что хотя бы один из элементов этого списка выбран.
Для этого делаю список юзеров с выбором роли в чате :

Код:
<small v-if="errorsList.userChatParticipantsArray" class="has_error">{{ errorsList.userChatParticipantsArray[0] }}</small>

<div v-for="nextActiveUser, index in activeUsersSelectionList" v-bind:id="nextActiveUser.key" class="col-xs-12 p-30">
   <label class="col-xs-12 col-sm-8 control-label text-right">{{ nextActiveUser.value }} : </label>
   <div class="col-xs-12 col-sm-4">
      <select v-bind:id="'user_chat_participant_status_' + nextActiveUser.key" class="form-control user_chat_participant">
         <option value="" selected> Select participation </option>
         <option v-for="nextUserChatParticipant, index in userChatParticipantStatusSelectionList" v-bind:value="nextUserChatParticipant.key">
            {{ nextUserChatParticipant.value }}
         </option>
      </select>
   </div>
   <div class="clearfix">
      <hr>
   </div>
</div>
<script>
И при сохранении данных собираю выбранных пользователей в массив :
Код:
            ...
            createUserChat() {
               var app = this;
               var userChatParticipantsArray= []; // Список выбранных эюзеров
                $('.user_chat_participant').each(function(i, obj) {
                    var userChatParticipant = {}
                    userChatParticipant.user_id = obj.id;
                    userChatParticipant.status = obj.value;
                    userChatParticipantsArray[userChatParticipantsArray.length]= userChatParticipant
                });

                this.newUserChat.userChatParticipantsArray= userChatParticipantsArray
               axios.post(  '/user_chats', this.newUserChat).then(  (response)=> {
Все работает, но возник нет ли возможности заменить цикл средствами vuejs?

Я читал доку по vuejs - но не помню такой возможности...

Спасибо !
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Я читал доку по vuejs - но не помню такой возможности...
Ну почитай еще про v-model, что ли. Ты пользуешься vue как шаблонизатором, поэтому тебе и приходится собирать данные руками и в цикле. Не надо так.
 

mstdmstd

Новичок
Снова прошу помощи
Просмотрев ссылку Рендеринг списков ( https://ru.vuejs.org/v2/guide/list.html )

Я пытался сделать с использованием фильтра:
Код:
this.newUserChat.userChatParticipantsArray = this.userChatParticipantStatusSelectionList.filter(function (item) {
alert( "item::"+var_dump(item) )
if (item.status!= '') {
return item
}
})

Если поле status не выбрано, то этот элемент не должен попасть в this.newUserChat.userChatParticipantsArray.
Массив this.userChatParticipantStatusSelectionList - этот тот массив который я использовал для заполнения select-инпутов(код был приведен в первом посте)
Но после фильтра this.newUserChat.userChatParticipantsArray равен this.userChatParticipantStatusSelectionList
без учета выбранных значений в форме.
Видимо, надо не так... А как ?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
а ты уверен что у невыбранного item status равен именно пустоте? Не гадай, проверяй нормально.
 

mstdmstd

Новичок
Не уверен, поэтому и спрашиваю как правильно...
Если мой вопрос понятен и делали схожее - поделитесь, плиз, решением.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
делали схожее - поделитесь, плиз, решением.
Тот, кто лишь прошаривает память в поисках «решения такой-то задачи» рискует остаться так же слеп к скрытой природе проблемы, как человек, который вместо собственных размышлений обращается к умному собеседнику или к энциклопедии. Конечно, этих методов нельзя гнушаться, они имеют творческую ценность и могут привести к решению. Но такое решение задач не имеет ничего общего с мышлением.

Карл Дункер. О решении задач. 1935, пер. на англ. 1945
 
Сверху