При получении списка программ добавьте дополнительное свойство, которое будет указывать, находится ли строка в режиме редактирования:
axios.get(url).then (response => {
this.programs = response.data.map(item => {
...item,
isEditing: false
})
})
Также программы должны быть инициализированы в пустой массив вместо пустой строки.
В методе editItem вместо объекта события вы передадите ссылку на элемент, а затем установите для isEditing значение true
editItem(item) {
item.isEditing = true
}
Затем вы можете создать метод, который будет извлекать, если ввод строки находится в режиме только для чтения:
isReadOnly(item) {
return item.isEditing ? false : "readonly";
}
Затем привяжите этот метод к атрибуту только для чтения
<input type="text" :readonly="isReadOnly(item)" />
Избегайте использования ссылок на узлы и попытайтесь решить проблему с привязкой. Например, вы можете привязать заголовок кнопки к методу и вернуть значение «Сохранить» или «Изменить» в зависимости от состояния isEditing.