У меня есть слушатель, чтобы проверить, какой ввод был выбран наконец, чтобы добавить в него какую-то строку / переменную.
created: function () {
document.addEventListener('focusin', this.focusChanged);
}
focusChanged(event) {
if (event.target.id !== 'variable-search') {
this.lastElement = event.target;
}
}
Кажется, это работает нормально, и когда я нажимаю на поле ввода, this.lastElement
обновляется с выбранным элементом. Все эти входы имеют v-model
, который может быть строкой в объекте или просто строкой.
Теперь дело в том, что я пытаюсь обновить значение с помощью:
this.lastElement.value += variable;
Vue не обнаруживает своих изменений, также в инструментах Vue Developer строка не обновляется. Но в поле ввода он обновляется. Так что это должно быть связано с реактивностью.
Когда я добавляю новый символ в поле ввода (v-модель), он снова обновляется. Так что просто когда я обновляю строку на this.lastElement
, она не регистрирует свои изменения.
Дело в том, что поля ввода являются динамическими, поэтому я не знаю, сколько здесь полей ввода и сколько списков и т. Д. Поэтому мне нужно, чтобы Vue повторно визуализировал переменную после обновления значения lastElement
.
Изменить
Я просто попробовал это с @focus вот пример
<input v-model="testVar" @focus="lastElement = testVar">
Если я обновлю lastElement
позже, он обновит его не для testVar
, а только для lastElement
.
lastElement
через привязку с v-моделью, потому чтоthis.lastElement
хранит ссылку на элемент dom, но его значение контролируется моделью vue. - person thefallen   schedule 01.02.2019v-on:focus
? - person Yom T.   schedule 01.02.2019@focus
? - person D Malan   schedule 01.02.2019lastElement
вам необходимоlastElement
отправить событиеinput
илиchange
, чтобы Vue распознал, что что-то произошло. - person Roy J   schedule 01.02.2019