[英]How to Reference an instance of an object when “use strict”; has been declared?
[英]how to handle input for objects when the object has not yet been declared in vue?
<input type="text" v-model="object[obj]">
Output:
object:{'obj1':value}
输入时的期望结果:
object:{'obj1':{'prop1':value,'prop2':value}}
<input type="text" v-model="obj">
<input type="text" v-model="object[obj]['prop1']">
<input type="text" v-model="object[obj]['prop2']">
{{object}}
export default {
data() {
return {
obj: '',
object: {},
}
}
}
这可以通过v-model
或一些自定义输入处理程序来实现吗?
您可以在<input>
上添加一个change
事件处理程序,该处理程序使用vm.$set()
创建新的 object 密钥:
<template>
<div>
<input v-model="obj" @change="onKeyChange">
</div>
</template>
<script>
export default {
methods: {
onKeyChange() {
const key = this.obj && this.obj.trim()
if (key) {
this.$set(this.object, key, { prop1: '', prop2: '' })
}
}
}
}
</script>
其他依赖于object[obj]
的<input>
应该用v-if
有条件地渲染,以避免在未定义的对象上使用prop1
/ prop2
:
<template>
<div>
<template v-if="object[obj]">
<input v-model="object[obj]['prop1']">
<input v-model="object[obj]['prop2']">
</template>
</div>
</template>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.