Vue Mdc Slider не обновляется правильно - PullRequest
0 голосов
/ 15 апреля 2019

Я использую реализацию Vue для материала: https://stasson.github.io/vue-mdc-adapter/#/

У меня проблема с загрузкой страницы. Когда я просматриваю свой ползунок, панель заполняется правильно на основе сохраненных значений, но ручка, которую вы можете использовать для изменения значения ползунка, остается равной 0. Однако всякий раз, когда я изменяю размер окна или открываю и закрываю инструменты разработчика, ручка подстраивается под правильное значение. положение.

Вот как это выглядит при загрузке страницы: enter image description here

Код:

  <mdc-slider
    v-model="value"
    min="0"
    max="120"      
    step="5"
    unit="mins"
  />

У кого-нибудь есть решение для правильной загрузки ручки при загрузке страницы?

1 Ответ

1 голос
/ 15 апреля 2019

Я не уверен, как выглядит ваш Vue объект, но это работает для меня ..


Редактирование # 2: похоже, что это 'обычное'. Кроме того, вам необходимо убедиться, что у вас загружены все правильные css файлы и т. Д. Было бы чрезвычайно полезно, если бы вы могли предоставить некоторый код, который воспроизводит эту проблему, или подробнее рассказать о вашей конфигурации. Вы делаете что-то особенное с css и т. Д.?

Редактировать # 2.1: вы можете попробовать любой из следующих примеров, основываясь на их документации и свойстве layout-on .. (это удар в темноте - я я не уверен, что любой из этих примеров будет работать ..)

 // Example 1:
 <mdc-slider
    v-model="value"
    min=0   
    max=120      
    step=5 
    layout-on   // ADDED: you could try using an empty prop
    unit="mins" // not sure what this is doing?
  />

 // Example 2:
 <mdc-slider
    v-model="value"
    min=0   
    max=120      
    step=5 
    layout-on="change" // ADDED: or pass in the 'change' event
    unit="mins"        // not sure what this is doing?
  />

Из документации :

(*) По умолчанию компонент-ползунок отслеживает изменение размера окна и события открытия / закрытия выдвижного ящика, чтобы сбросить его макет, но при отключении изменения размера css или изменении позиционирования макет может быть отключен. в этом случае вы можете использовать событие layout для включения макета или программный вызов метода layout ().


CodePen зеркало


Редактировать: Бьюсь об заклад, это потому, что вы проходите в String, а не Number в max, min и step, свойства .. Вы можете прочитать больше в их документации здесь . Или у вас может не быть загружено css?

Попробуйте что-то вроде этого:

 <mdc-slider
    v-model="value"
    min=0    // or :min="0"
    max=120  // or :max="120"      
    step=5   // or :step="5"
    unit="mins"
  />

enter image description here


new Vue({
  el: "#app",
  data: {
    max1: 120,
    max2: 200,
    value1: 120,
    value2: 80,
  }
})
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/7.0.0/normalize.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" type="text/css">
<link rel="stylesheet" href="https://unpkg.com/vue-mdc-adapter@^0.6.0/dist/vue-mdc-adapter.min.css" type="text/css">
<script src="https://unpkg.com/vue@^2.5.9/dist/vue.min.js"></script>
<script src="https://unpkg.com/vue-mdc-adapter@^0.6.0/dist/vue-mdc-adapter.min.js"></script>

<div id="app">
  <div>
    <div style="width: 400px; margin: 50px 0 0 30px;">
      <span>Max: <b>{{ max1 }}</b> | Current: <b>{{ value1 }}</b></span>
      <mdc-slider min=0 :max=max1 step=10 display-markers v-model="value1" />
    </div>
    <div style="width: 400px; margin: 50px 0 0 30px;">
      <span>Max: <b>{{ max2 }}</b> | Current: <b>{{ value2 }}</b></span>
      <mdc-slider min=0 :max=max2 step=10 display-markers v-model="value2" />
    </div>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...