Я использую v-for для создания большого количества входов.Эти входные данные станут клавишами объекта, поэтому я не могу (?) Использовать v-модель, чтобы напрямую связать входные данные с объектом.Пользователь приложения также сможет добавлять и удалять ключи, поэтому только сам объект является глобальным значением.Вместо этого я делаю это:
<b-form-group horizontal label-cols="1" v-for="(site, a) in config.sites">
<b-form-group horizontal label-cols="1" label="Site: ">
<b-form-input type="text" :value="a" @change="changeKey" required />
</b-form-group>
</b-form-group>
changeKey - метод, который требует старого ключа (этот метод изменения ключа объекта, извлекаемого из другого места на этом сайте):
changeKey: function(old_key, new_key) {
Object.defineProperty(this.config, new_key, Object.getOwnPropertyDescriptor(this.config, old_key));
delete this.config[old_key];
}
Я знаю, что могу передать только старое значение с
<b-form-input type="text" :value="a" @change="changeKey(a)" required />
и только новое значение с
<b-form-input type="text" v-model="a" @change="changeKey(a)" required />
Однако мне нужно оба старые и новые ценности.Я не могу передать объект события, который является решением, предложенным другими ответами на подобные вопросы:
@change="changeKey(a, $event)"
$event
и event
не распознаются как переменные.Как я могу получить доступ к старым и новым значениям из моего метода?(Альтернативные методы изменения ключей объектов, динамически назначаемых компонентам Vue, также были бы полезны, но не по теме.)