如何在v-model指令中使用字符串作为属性名称来访问Vue组件的data属性?

时间:2019-08-20 19:33:16

标签: javascript vue.js frontend v-model vue-directives

通过使用命名属性的字符串,我可以使用方括号表示法访问对象的属性。 例如

const foo = {
 "bar[foobar]": "hello world"
}

foo["bar[foobar]"] // "hello world"

如何在Vue SFC (Single File Component)中执行相同的操作,在Vue中,我有一个名为"bar[foobar]"的数据属性,并想将其绑定到输入的值上,从而为v-model指令赋予值{ {1}}?

"bar[foobar]"

我尝试提供像<template> <input v-model="bar[foobar]" /> </template> <script> export default { name: 'MyComponent', data() { return { "bar[foobar]": "hello world" } } } </script> 这样的v-model指令,但是还是无效,或者v-model='{{ 'bar[foobar]' }}'

1 个答案:

答案 0 :(得分:1)

理想情况下,您只是重命名了data属性,但是如果不能重命名,则可以通过$data访问它:

<input v-model="$data['bar[foobar]']">