Модификатор vue v-модели не работает с элементами массива - PullRequest
0 голосов
/ 24 мая 2018

У меня есть массив объектов, которые я перебираю с помощью v-for, создаю вход для одного из свойств объекта и использую vee-validate для этого входа.Я хочу проверить лениво, поэтому я использую v-model.lazy для обновления только при изменении, и именно здесь возникает проблема.Привязка данных, кажется, не происходит правильно.Приведенная ниже скрипка воспроизводит мою проблему.Любой совет будет высоко ценится.

https://jsfiddle.net/1r944gnc/

Vue.use(VeeValidate)

new Vue({
  el: '#app',
  data: {
    users: [
      {
        email: null
      }
    ]
  },
  methods: {

  }
})

<div id="app">
    <div v-for="user in users">
      <input type="text" name="foo" v-model.lazy="user.email" v-validate="'email'" />
      <span v-show="errors.has('foo')">{{ errors.first('foo') }}</span>
    </div>
</div>

1 Ответ

0 голосов
/ 24 мая 2018

Я думаю, что это ошибка VeeValidate.

Существует обходной путь, который имеет такой же эффект, как и ваше желание: Подтвердите на blur событие

<div id="app">
    <div v-for="user in users">
      <div>Email: {{ user.email }}</div>
      <input type="text" name="foo" v-model="user.email" v-validate="'email'" data-vv-validate-on="blur"/>
      <span v-show="errors.has('foo')">{{ errors.first('foo') }}</span>
    </div>
</div>

Демо https://jsfiddle.net/4zjf2ph3/

...