vue.js - 动态更新值时如何更新vue.js中textarea的高度?
问题描述
使用 Vue.js,我确实使用了一种简单的方法来动态设置在键入时调整大小的文本区域的高度。但是当组件安装或值更新时,我无法做到这一点。
我已经尝试过http://www.jacklmoore.com/autosize/,但它有同样的问题。
我创建了一个显示问题的沙箱,在键入它更新的框时,但不是在值动态更改时
解决方案
你需要一个triggerInput()
方法:
triggerInput() {
this.$nextTick(() => {
this.$refs.resize.$el.dispatchEvent(new Event("input"));
});
}
每当您以编程方式更改值时使用,触发<textarea>
在“真实”input
事件上使用的调整大小逻辑。
注意:如果没有包装器,最近更改的值将不会被$nextTick()
应用,即使触发了,元素还没有更新并且之前发生的调整大小已经改变,导致旧的并且看起来没有发生。input
value
height
推荐阅读
- typescript - Typescript Twitter 机器人只是不转发
- javascript - 如何实现或改进堆栈交换的“killfile”?
- laravel - 尝试在 laravel 中生成 QR 但出现错误 Use of undefined constant
- mysql - SQL 选择多个即使为空
- .net-core - MassTransit 检查队列和交换是否存在
- c# - 如何在启动/启动期间等待所有机器客户端/请求到达并给出答案?| ASP.NET 核心
- mongodb - 有没有办法在 Mongoose Schema 中有条件地设置“唯一”?
- python - 如何将二进制文件转换为 python 对象,添加它们,然后将生成的 python 对象转换回二进制文件
- web3 - Metamask eth_requestAccounts 不适用于 localhost:3000
- kotlin - Kotlin 未处理的协程异常不会崩溃