javascript - Vue如何使用计算属性选择组件中的所有文本
问题描述
我通常可以选择所有文本,$event.target.select()
但在这种情况下,我认为它是选择全部,然后用计算属性替换选择。计算属性完成后如何全选?
Vue.component('my-component', {
template: `
<div>
My Component
<input type="text" v-model="displayValue" @blur='isInputActive = false' @focus='isInputActive = true;$event.target.select()'></input>
</div>
`,
props:['value'],
data() {
return {
isInputActive: false
};
},
computed: {
displayValue: {
get: function() {
return (this.isInputActive) ? this.value : this.value.toUpperCase();
},
set: function(val) {
this.$emit('input', val);
},
}
},
})
new Vue({
el: '#app',
data() {
return {
test: "Test"
};
},
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<my-component v-model="test"></my-component>
</div>
解决方案
您可以$nextTick
在计算属性完成后使用 which 运行回调。
@focus='isInputActive = true; $nextTick(() => $event.target.select())'
推荐阅读
- angular - Ngx-Indexed-db - 数据未保存在 Microsoft Edge 浏览器中,引发数据错误
- python - 如果未找到元素,脚本将不起作用
- c# - 流未打开以供阅读
- php - Sendinblue SMTP 在 CodeIgniter 中不起作用
- regex - jflex正则表达式除零以外的任何数字
- kubernetes - 如何在 Keycloak 启动时添加/修改 LDAP 用户联合
- python - 在一个 pandas 数据框中加载一个文件夹的多个带有密码的 zip 文件
- c# - 403 仅在部署时禁止重新验证
- python - 在 python 中读取文本文件时,如何解决此列表索引超出范围错误?
- java - Java - 列表