Как исправить проблему с привязкой в ​​Vue js - PullRequest
4 голосов
/ 15 марта 2020

enter image description here

 <tr :key="indexProject"  v-for="(project,indexProject) in currentUserProjects">
           <td>
              <div>
                {{project.name}} -  {{project.client.name}}
              </div>
           </td>
           <td :key="indexDay"  v-for="(day,indexDay) in days">
              <v-text-field v-if="indexDay < 7 && daysMatrix.length > 0" v-model="daysMatrix[indexProject] 
                 [indexDay].hours" v-on:input="calculateProjectTotal(daysMatrix[indexProject][indexDay].hours, indexProject)"/>
              <div v-if="indexDay >= 7 && daysMatrix.length > 0 ">
                 {{daysMatrix[indexProject][indexDay]}}
              </div>
            </td>
            <td class="remove_time">
               <v-btn @click="remove(indexProject)"  icon>
                   <v-icon>mdi-delete-forever</v-icon>
               </v-btn>
            </td>
         </tr>






remove(indexProject){
                console.log(indexProject)
                this.daysMatrix[indexProject][0].hours = 0
                this.daysMatrix[indexProject][1].hours = 0
                this.daysMatrix[indexProject][2].hours = 0
                this.daysMatrix[indexProject][3].hours = 0
                this.daysMatrix[indexProject][4].hours = 0
                this.daysMatrix[indexProject][5].hours = 0
                this.daysMatrix[indexProject][6].hours = 0
 },

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

это дополнительный код enter image description here

1 Ответ

0 голосов
/ 04 апреля 2020

Как уже упоминалось в комментариях, это проблема реактивности. Только установив все значение, используя определенные методы массива или метод. $ Set, можно активировать реактивность. Вам нужно сделать что-то более похожее на

const days = this.daysMatrix
days[indexProject][0].hours = 0
days[indexProject][1].hours = 0
//...

this.daysMatrix = days

или

this.daysMatrix[indexProject].forEach((value, index) => {
  this.$set(this.daysMatrix[indexProject][index], 'hours', 0)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...