Vuejs2 从回调更新属性
我正在尝试使用一个库中的函数,它的调用方式如下Vuejs2 从回调更新属性,vuejs2,Vuejs2,我正在尝试使用一个库中的函数,它的调用方式如下 convertString(输入、选项、回调) 具有如下所示的简单模板 <template> <textarea v-model="inputText"></textarea> {{ convertedText() }} </template> export default { data () { return { inputText: '' } }, m
convertString(输入、选项、回调)
具有如下所示的简单模板
<template>
<textarea v-model="inputText"></textarea>
{{ convertedText() }}
</template>
export default {
data () {
return {
inputText: ''
}
},
methods: {
convertTextCallback: function (err, result) {
if (!err) return result
},
convertedText: function () {
options = ''
convertString(this.inputText, options, this.convertTextCallback)
}
}
}
问题是
convertedText
函数需要返回一个字符串,但该字符串是在回调运行时生成的。如何返回回调生成的字符串。您可以使用async/await,但是不鼓励以这种方式使用异步调用。我建议使用一个监视程序和另一个数据属性
首先,我相信您提供的设置即使不是异步的,也不会达到您希望的效果。当输入文本为空时,它将在页面加载时调用转换后的文本,然后不会更新,因为它不是计算属性
一个有效的例子:
export default {
data () {
return {
inputText: '',
result: '',
}
},
methods: {
convertTextCallback: function (err, result) {
if (!err) this.result = result
},
},
watch: {
inputText: function() {
options = ''
convertString(this.inputText, options, this.convertTextCallback)
}
}
}
然后在你的模板中
<template>
<textarea v-model="inputText"></textarea>
{{ result }}
</template>
{{result}}