我有一个监听器来检查最后选择了什么输入,以便稍后添加某种字符串/变量。
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 开发者工具中,字符串也不会被更新。但是在输入字段中它确实得到了更新。所以这应该是一个反应性的事情。
当我在输入字段(v-model)中添加一个新字符时,它会再次更新。所以只是当我更新字符串时this.lastElement
它不会注册它的更改。
问题是输入字段是动态的,所以我不知道这里有多少输入字段以及有多少列表等。所以我需要Vue在lastElement
更新值后重新渲染变量。
编辑
我只是用@focus在这里尝试了一个例子
<input v-model="testVar" @focus="lastElement = testVar">
如果我lastElement
稍后更新,它不会更新它,testVar
而只是lastElement
.