Мне не удалось установить v-модель динамически.
Это сработает, если я напечатаю явно:
<div class="form-group mr-3 mb-2">
<input type="text"
v-model="form[filters][firstlastname]"
>
</div>
Но я хочу перебрать объект, в котором у меня есть строка, например: 'form [filters] [firstlastname]'
Родитель имеет форму со свойствами:
data() {
return {
form: new Form({
filters: {
gender: [],
firstlastname: 'My firstlastname'
Итак, от родителя я передаю форму и фильтрую в дочерний компонент, вот фильтры:
let formFilters = { filters: [
{
type: 'text',
property: 'form[filters][firstlastname]', // <-- string
placeholder: 'Name',
},
{
type: 'number',
property: 'paginate',
placeholder: 'Max rows'
},
]
}
Дочерний компонент: (здесь я перебираю объект и генерирую поля ввода)
<div v-for="(filter,index) in formFilters.filters"
:key="`${index}_${filter.property}`"
>
<input
v-if="filter.type === 'text' || filter.type === 'number'"
:placeholder="filter.placeholder"
:type="filter.type"
v-model="filter.property" //<--- set the property
>
Это не работает. V-модель просто интерпретирует его как строку, а не ссылку на свойство формы. Я тестировал другие способы, например: v-model="``${[filter.property]}``"
(одинарный, а не двойной `` '', но в противном случае он не будет отображаться в stackoverflow) и другие сумасшедшие вещи, но это недействительно.
Итак, как мне установить v-модель с переменной, содержащей строку (чтобы ее можно было установить динамически)?
v-model="form[filters][firstlastname]"
, не так ли:v-model="form['filters']['firstlastname']"
- person AJT82   schedule 29.01.2020property: 'form[\'filters\'][\'firstlastname\']'
, он интерпретируется как строка. Я также пробовал form.filters.firstlastname, и это то же самое. - person Galivan   schedule 29.01.2020