Как «красиво» в методе компонента заменять надпись на каком-либо элементе?

Есть поле:
....
 <div class="custom-file">
      <input type="file" class="custom-file-input" id="avatar" name="avatar" @change="showUploadedAvatar">
      <label class="custom-file-label" for="avatar">Выберите файл</label>
</div>
....

Метод в компоненте vue:
showUploadedAvatar(event) {
      var ext = $(event.target).val().match(/\.(.+)$/)[1];
      if (ext == 'jpg' ||ext == 'jpeg'||ext == 'png') {
        this.newAvatar = URL.createObjectURL(event.target.files[0]);
      } else {
        alert('Некорректный тип файла');
      }
    }

При загрузке файла, если он подходит в this.newAvatar добавляется ссылка, сам переменная находится в:
data: function(){
    return {
      user: null,
      percents: [5,10,25,50,75,100],
      categories: [],
      newAvatar: null,
    }
  }

и используется для показа загруженного аватара.

Теперь к вопрос. Я хочу чтобы при загрузке файла у меня так же показывалось его название вместо текста "Выберите файл". Каким самым правильным способом можно это сделать?
Создавать еще один элемент в data()? Лепить jquery? Возможно есть какие-то best practise?
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Каким самым правильным способом можно это сделать?

"Самых правильных" способов нет.

Создавать еще один элемент в data()?

Да.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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