индекс v-for как значение для v-модели - PullRequest
0 голосов
/ 20 декабря 2018

Мне нужно установить индекс v-for для динамической v-модели, но я не знаю, как это сделать без появления ошибки, я попробовал это, но оно не изящно и дало мне ошибкив консоли:

В моем разделе шаблона:

<div v-for="(ob, index) in $v.especifications.$each.$iter" :key="index" class="row">
    <div class="form-group" :class="{ 'form-group--error': $v.$error }">
        <label for="number">Número:</label>
        <input v-model="ob.numero.$model = parseInt(index)+1" type="number" class="form-control" id="number" aria-describedby="number" disabled>
        <div class="alert alert-danger" role="alert" v-if="ob.numero.$dirty && !ob.numero.required">Es requerida una fecha de inicio</div>
    </div>
</div>

В моем разделе скрипта:

export default {
    data () {
      return {
        especifications: [{
          descripcion: '',
          numero: '',
          cantidad: ''
        }],
      }
    }
  }

Ошибки:

Module Warning (from ./node_modules/eslint-loader/index.js):
error: 'v-model' directives require the attribute value which is valid as LHS (vue/valid-v-model)

И

error: 'v-model' directives cannot update the iteration variable 'x' itself (vue/valid-v-model)

1 Ответ

0 голосов
/ 20 декабря 2018

Используйте :value=ob.numero.$model, а не v-model

, а затем добавьте обработчик @change:

@change="updateNumero(index, $model)"

, а затем создайте эту функцию:

methods: {
  updateNumero(index, model) {
    $v.especifications.$each.$iter[index].numero[model] = parseInt(index) +1
  }
}

Я не буду гарантировать, что это реагирует, но это сработает.

...