Как предотвратить запуск события ввода при изменении данных за пределами поля ввода текста в vue?

#vue.js #vuejs2

#vue.js #vuejs2

Вопрос:

У меня есть поле ввода в моем компоненте, которое вызывает метод @input, например:

 <q-input v-model="invoice_base">
<q-toggle v-model="overwrite" @input="updatePrices()" label="overwrite_the_input"/>
<q-input v-model="list_base" @input="updatePrices()" :disable="!overwrite">
  

Но в коде есть строка, в которой я должен изменить list_base сам.

 updatePrices(){
    ...
    if(!this.overwrite){
        this.list_base = this.invoice_base;
    }
    ... here the list_base is used for other calculations
}
  

Когда overwrite значение true переключается list_base , его необходимо изменить, а другие вычисления все еще выполняются. Здесь, когда я его изменяю, метод doSomething() запускается во второй раз, потому что изменение переменной также запускает (то же самое) (@) событие ввода (потому что оно синхронизировано). Как я могу предотвратить это?

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

1. вы хотите увеличить это number_data при выходе из ввода?

2. Нет @BoussadjraBrahim в этом методе есть некоторые вычисления, и в результате number_data они могут быть изменены. Не увеличивать.

3. вы пробовали свойство watch?

4. ваш вариант использования недостаточно ясен, если вы опишете реальный вариант использования или sceario, я мог бы предложить решение

5. извините, я вижу ваш комментарий поздно, поскольку вы используете @input попробуйте привязать value list_base свойство to и обновить внутри updatePrices метода <q-input :value="list_base" @input="updatePrices()" :disable="!overwrite">