#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">