Vue v-модель на определенной опоре

#javascript #vuejs2

Вопрос:

Я хочу, чтобы v-модель=»num» как раз тогда, когда v-if prop === «сумма». Как я могу это сделать? потому что входные данные являются общими для «кол-во» и «book_value»

 <template #item="{ prop, value, rowIndex }">
    <div
    v-if="prop === 'qty' || prop === 'book_value'"
    >
    <input
      v-model="num"
      :value="preview amp;amp; prop === 'book_value'? formatAmount(value) : value"
      :preview="preview"
       @input="setRuleItem({ newValue: $event, prop, rowIndex, name: 'actions' })"
     />

---------------------------

watch: {
    num (newVal, oldVal) {
      if (newVal.includes('.')) {
        this.$nextTick(() => { this.num = newVal.split('.')[0]   '.'   newVal.split('.')[1].slice(0, 2) })
      }
    }
  },
 

Комментарии:

1. Совсем не ясно.

Ответ №1:

Вы можете сделать это многими способами, но вот несколько простых примеров

Используйте обработчик ввода вместо v-модели

 <input @input="(val) => prop === 'amount' ? num = val : false" :value ... />
 

создайте еще один элемент

 <input v-if="prop === amount" v-model="num"...><input v-else :value... ></input>
 

Комментарии:

1. Из которых второй с меньшей вероятностью сломается, хотя он удваивает код.