@demeys

Как сделать видимым дочерний элемент при клике?

Привет! вывожу массив фалов

https://jsfiddle.net/demeys/eywraw8t/462223/

<ul class="list-inline">
            <li class="list-inline-item image-list shadow mb-3 ml-3" v-for="file, index in files">
                <a :href="file.src">
                    <v-lazy-image class="img-fluid" :src="file.src" />
                </a>
                <div class="p-2 overflow-hidden">
                    <small class="text-gray">{{ file.file_name}}</small>
                    <button   @click="deleteFile(index, file)"  class="btn btn-danger btn-sm mr-1 float-right">
                        <i v-if="loading" class="fa fa-spinner fa-spin fa-fw"></i>
                        <i class="fa fa-trash-o" aria-hidden="true"></i> Delete
                    </button>
                </div>

            </li>
        </ul>


При клике на кнопку deleteFile задаю this.loading = true;
methods: {
  deleteFile(file) {
     this.loading = true;
}

но он срабатывает для всего списка, как сделать чтоб loading был только у конкретной записи?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
@nvdfxx
Senior Pomidor developer
<div id="app">
  <ul>
    <li v-for="(item,i) in arr">{{item.name}} <button @click="someEvent(i)">delete</button></li>
  </ul>
</div>


new Vue({
  el: '#app',
  data: {
    arr: [
      {
        name: 'afaw',
        loading: false
      },
      {
        name: 'argeae',
        loading: false
      },
      {
        name: 'agsesf',
        loading: false
      }
    ]
  },
  methods: {
    someEvent(index) {
      this.arr[index].loading = true
    }
  }
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@demeys Автор вопроса
Спасибо за ответ!
я добрался до элемента button
<button @click="deleteFile(index)"  class="btn btn-danger btn-sm mr-1 float-right">
                        <i v-if="loading"  class="fa fa-spinner fa-spin fa-fw"></i>
                        <i class="fa fa-trash-o" aria-hidden="true"></i>
                    </button>

но свойство loading должно меняться у дочернего элемента
Ответ написан
Ваш ответ на вопрос

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

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