无法获得 textarea 的 scrollHeight 的正确值 - VueJs,Vuetify
Can't get the correct value of scrollHeight for a textarea - VueJs, Vuetify
我正在尝试获取 texteara
字段的值 scrollHeight,问题是当我使用文档对象时:document.querySelector("#textarea-element").scrollHeight
,我有一个正确的值,
但是当我尝试使用 refs
时,值是错误的并且没有改变。
我已经为这些行为做了一个详细的 jsfiddle 请看下面:
new Vue({
el: '#app' ,
data: {
height: 'auto',
scrollHeightUsingRefsVuejs:'',
scrollHeightUsingDocumentObject: ''
},
methods:{
resizeTextarea (e) {
this.scrollHeightUsingRefsVuejs = this.$refs.messageBox.$el.scrollHeight
this.scrollHeightUsingDocumentObject = document.querySelector("#textarea-element").scrollHeight
console.log(this.scrollHeightUsingRefsVuejs, this.scrollHeightUsingDocumentObject)
}
}
})
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<link href="https://unpkg.com/vuetify@1.0.11/dist/vuetify.min.css" rel="stylesheet"/>
<script src="https://unpkg.com/vuetify@1.0.11/dist/vuetify.js"></script>
<div id="app">
<v-app>
<v-content>
<v-container>
<v-text-field
color="cyan darken"
label="Text field"
multi-line
rows="2"
placeholder="Start typing..."
ref="messageBox"
@keydown.native="resizeTextarea"
:style="{height: height}"
id="textarea-element"
></v-text-field>
<p>
Scroll Height Using Refs Vuejs : <strong>{{ scrollHeightUsingDocumentObject}}</strong>
</p>
<p>
<span style="color:red">(Wrong)</span> Scroll Height Using Refs Vuejs : <strong>{{ scrollHeightUsingRefsVuejs }}</strong>
</p>
</v-container>
</v-content>
</v-app>
</div>
(要查看 scrollHeight 的值,如果 textearea 已归档,请键入任何内容)
this.$refs.messageBox.$el.scrollHeight
指的是 Vuetify 生成的父节点 input-group
这样值似乎是错误的,我们只需要像这样向 tearea 节点添加一个选择器 this.$refs.messageBox.$el.querySelector('textarea').scrollHeight
我正在尝试获取 texteara
字段的值 scrollHeight,问题是当我使用文档对象时:document.querySelector("#textarea-element").scrollHeight
,我有一个正确的值,
但是当我尝试使用 refs
时,值是错误的并且没有改变。
我已经为这些行为做了一个详细的 jsfiddle 请看下面:
new Vue({
el: '#app' ,
data: {
height: 'auto',
scrollHeightUsingRefsVuejs:'',
scrollHeightUsingDocumentObject: ''
},
methods:{
resizeTextarea (e) {
this.scrollHeightUsingRefsVuejs = this.$refs.messageBox.$el.scrollHeight
this.scrollHeightUsingDocumentObject = document.querySelector("#textarea-element").scrollHeight
console.log(this.scrollHeightUsingRefsVuejs, this.scrollHeightUsingDocumentObject)
}
}
})
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<link href="https://unpkg.com/vuetify@1.0.11/dist/vuetify.min.css" rel="stylesheet"/>
<script src="https://unpkg.com/vuetify@1.0.11/dist/vuetify.js"></script>
<div id="app">
<v-app>
<v-content>
<v-container>
<v-text-field
color="cyan darken"
label="Text field"
multi-line
rows="2"
placeholder="Start typing..."
ref="messageBox"
@keydown.native="resizeTextarea"
:style="{height: height}"
id="textarea-element"
></v-text-field>
<p>
Scroll Height Using Refs Vuejs : <strong>{{ scrollHeightUsingDocumentObject}}</strong>
</p>
<p>
<span style="color:red">(Wrong)</span> Scroll Height Using Refs Vuejs : <strong>{{ scrollHeightUsingRefsVuejs }}</strong>
</p>
</v-container>
</v-content>
</v-app>
</div>
(要查看 scrollHeight 的值,如果 textearea 已归档,请键入任何内容)
this.$refs.messageBox.$el.scrollHeight
指的是 Vuetify 生成的父节点 input-group
这样值似乎是错误的,我们只需要像这样向 tearea 节点添加一个选择器 this.$refs.messageBox.$el.querySelector('textarea').scrollHeight