Я работаю с древовидным представлением в Vuejs, это древовидное представление включает родителя и потомков. При каждом обновлении я вызываю API для обновления данных в базе данных. Я могу вернуть массив категорий для обновления до категорий модели ИЛИ вернуть категорию объекта и использовать код JS для обновления категорий модели. Какой случай Обновить, потому что у него 4 случая: обновление не меняет родителя, меняет родителя, родителя -> потомки, потомки -> родителя. Таким образом, код JS для обновления модели сложнее, чем таблица возврата:
// Update by return Array Categories
this.categories = response.data
this.active = []
this.editedCateory = null
this.$refs.form.reset()
//Update by use JS when return Object Category
this.updated = response.data
this.editedCateory.name = updated.name
this.editedCateory.url = updated.url
if(this.editedCateory.parent && !updated.parent)
{
let oldparent = this.categories.filter(v=>v.id == this.editedCateory.parent)
oldparent[0].children = oldparent[0].children.filter(v=>v.id != updated.id)
updated = Object.assign({}, updated, {'children':[]})
this.categories.push(updated)
}
else if(!this.editedCateory.parent && updated.parent)
{
this.categories = this.categories.filter(v=>v.id != updated.id)
let newparent = this.categories.filter(v=>v.id == updated.parent)
newparent[0].children.push(updated)
}
else if(this.editedCateory.parent && updated.parent && (this.editedCateory.parent != updated.parent))
{
let oldparent = this.categories.filter(v=>v.id == this.editedCateory.parent)
oldparent[0].children = oldparent[0].children.filter(v=>v.id != updated.id)
let newparent = this.categories.filter(v=>v.id == updated.parent)
newparent[0].children.push(updated)
}
this.active = []
this.editedCateory = null
this.$refs.form.reset()
Я кодирую Vuejs, я думаю, мне следует использовать JS модель обновления, но это более сложно.
Эта мысль верна или неверна? Спасибо за просмотр