Javascript Vuetify-当其型号更改时,如何使setSelectionRange(int,int)在v-textarea中工作

Javascript Vuetify-当其型号更改时,如何使setSelectionRange(int,int)在v-textarea中工作,javascript,html,vue.js,selection,vuetify.js,Javascript,Html,Vue.js,Selection,Vuetify.js,我尝试使用该方法更改vuetify中光标的位置 当I不操作textarea的v-model属性所引用的数据元素时,它工作得很好。但是,如果我尝试先更改主体,然后应用setSelectionRange方法;光标直接移动到文本的末尾 我附加了一个简化版本的片段。一旦在文本区域的任意位置点击backspace键,光标应移动到索引2;但它会移到文本的末尾 但是,如果删除这个.body并再次退格,它会和平地移动到索引2 newvue({ el:“#应用程序”, 数据:{ 正文:“” }, 创建(){ t

我尝试使用该方法更改vuetify中光标的位置

当I不操作textarea的
v-model
属性所引用的数据元素时,它工作得很好。但是,如果我尝试先更改主体,然后应用
setSelectionRange
方法;光标直接移动到文本的末尾

我附加了一个简化版本的片段。一旦在文本区域的任意位置点击backspace键,光标应移动到索引2;但它会移到文本的末尾

但是,如果删除
这个.body
并再次退格,它会和平地移动到索引2

newvue({
el:“#应用程序”,
数据:{
正文:“”
},
创建(){
this.body='我是初始实体。如果需要,请在某个地方单击backspace!'
},
方法:{
onBackspaceOrDeleteButtonKeydown(事件){
//禁用默认行为
event.preventDefault()
让bodyTextArea=this.$refs.pourBody.$el.querySelector('textarea'))
//注释掉下一行,以查看光标始终移动到索引2
this.body='I am changed body.My cursor本应移动到索引2,但它会像>'一样移动到末尾'
bodyTextArea.setSelectionRange(2,2)
}
}
})


将setSelectionRange包装到setTimeout中,就像这样
setTimeout(()=>bodyTextArea.setSelectionRange(2,2))
。将光标设置到所需位置并重置光标位置后,v-model将重新返回该值。您必须确保在之后调用
setSelectionRange

除了givehug的解决方案之外,您还可以这样做

this.$nextTick(() => {
   bodyTextArea.setSelectionRange(2, 2))
})

2岁,但我一直在寻找这个解决方案的最后一个小时。非常感谢。