bootd
@bootd
Гугли и ты откроешь врата знаний!

Как в element UI связать ползунок диапазона с 2м input полями?

Добрый вечер. Использую у себя на проекте вот такой вот фреймворк.
Произошла у меня загвоздка, при использовании компонента slider.
Что пытаюсь сделать
5a13053c23831650085933.jpeg

У меня есть фильтр, в котором есть блок, указанный в картинке. Я всё сделал, осталось только связать слайдер с 2мя полями, мин. и макс.
Так выглядит разметка блока с картинки(сокращённая):
<el-input v-model="catalogFilter.price.min" />
<el-input v-model="catalogFilter.price.max" />
<el-slider range />

и такой код в js:
data(){
  return {
    сatalogFilter: {
      price: {
        min: 12600,
        max: 123600
      }
    }
  }
}

Но, что-то я не пойму, как это сделать. В доке такого слияния не нашёл. Там есть только с 1м полем, просто указав одно и тоже свойство в модели, но как быть с 2мя, я честно говоря, не понял.
  • Вопрос задан
  • 1350 просмотров
Решения вопроса 2
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
В живую не тестил, но должно быть как-то так
<el-input v-model="catalogFilter.price[0]" />
<el-input v-model="catalogFilter.price[1]" />
<el-slider range v-model="catalogFilter.price"/>

data(){
  return {
    сatalogFilter: {
      price: [ 12600, 123600]
    }
  }
}
Ответ написан
0xD34F
@0xD34F Куратор тега Vue.js
Так?

UPD. Как победить тормоза при большом интервале значений. Можно работать с интервалом, который не будет вызывать тормозов - уменьшить границы в 100 раз, например. А в полях ввода показывать настоящие значения. Ну а то, что таким образом станет заведомо невозможной точная настройка значений посредством слайдера - так она в любом случае невозможна для больших интервалов. В общем, вот примерчик того, как это можно сделать.

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

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

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