Я использую vue js и bootstrap-vue для создания редактируемой таблицы, пользователю разрешено вносить изменения в таблицу с помощью v-on: change, помогая axios обновлять базу данных. Ограничение заключается в том, что языки уникальны и не могут быть пустой строкой, я не могу восстановить значение, если пользователь допустил ошибку. Каков рекомендуемый подход к этому? Любая помощь приветствуется.
Я попытался «обновить» таблицу, выполнив:
this.languages = this.languages;
Кажется, не обновляет значение в таблице.
раздел компонента vue на столе:
<b-table striped hover :items="filtered" :fields="fields">
<template slot="name" slot-scope="data">
<b-form-input type="text" :value="data.item.name" v-on:change="updateLanguage($event,data.item.id)"></b-form-input>
</template>
</b-table>
в методах экспорта vue по умолчанию:
updateLanguage(e,id) {
if(e.trim()){
const find_langauge = this.languages.find(language=>{
return language.name.toLowerCase() === e.toLowerCase();
});
find_langauge ? this.languages = this.languages : console.log('no match');
} else {
console.log('cannot be empty');
this.languages = this.languages;
}
}
в вычисленном:
filtered() {
return this.search ? this.languages.filter(language=>
language.name.toLowerCase().includes(this.search.toLowerCase())) : this.languages;
}