Ответы пользователя по тегу Vue.js
  • Как при выборе значения в одном селекте, сбрасывать другие?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Добавляете selected каждому элементу items, используете его в v-model, также отслеживаете переключение списка в родителе и сбрасываете selected всех элементов, кроме переключенного. Как-то так.

    UPD. В комментариях было высказано мнение, будто бы предлагаемое решение является хаком, потому что...

    ...это делается за пределами компонента. Плюс надо добавить selected для каждой карточки. Их может быть много. Нужно как то событиями реализовать.

    1) За пределами компонента - а как иначе-то? Ведь изменение одного экземпляра компонента должно затронуть другие.

    2) Добавление selected - не проблема. Делайте map массива items, закидывая в каждый элемент этот selected. Типа так. Или можете устанавливать значения selected с помощью $set в методе onCardChanged, типа так (а вот это уже действительно хак).

    3) "Событиями реализовывать" - но ведь так и сделано. У вас была реализована генерация события input, обработку которого я и добавил.

    UPD. Хотя можно оставить selected свойством компонента (дефолтное значение только объектом сделать), пусть хранит id элемента items и выбранный пункт выпадающего списка:

    <vue-select
      :value="selected.id === item.id ? selected.option : null"
      :options="item.versions"
      @input="selected = { id: item.id, option: $event }"
    ></vue-select>
    Ответ написан
    4 комментария
  • Почему Vue не обновляет HTML?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Vue не может отследить прямую установку значения по индексу.

    Используйте set: Vue.set(data.cardData, 0, 'hello, world!!');.
    Или splice: data.cardData.splice(0, 1, 'fuck the world');.
    Ответ написан
    Комментировать
  • Почему метод работает только для последнего элемента?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Работает для обоих элементов, просто scrolled - он у вас один. Поэтому он всегда принимает значение, соответствующее последнему элементу - успешно установленное true при обработке первого элемента затирается false'ом, устанавливаемым при обработке второго.

    Насколько я понял, должно быть так.
    Ответ написан