关于删除子节点的问题
比如我现在想删除c2节点,视频里面说,删除子节点就是更新父节点,即更新parent,但是代码中点击删除
节点就会执行deleteMenu方法,因为是删除子节点,因此执行第一个if方法,那么问题来了,好像c2这个节点什么都没操作,只是把父节点parent1传入updateMenu方法,怎么最后就可以删除c2这个节点呢?好像并没有把c2从那个节点数组中剔除再传递parent1啊。。。不懂。。。
正在回答 回答被采纳积分+1
你把这一行:
https://git.imooc.com/class-70/toimc-admin/src/master/src/view/menu/index.vue#L213
加到201行和207行之前,便于你的理解。
因为.update方法为异步方法,所以放在213的节点会被先删除掉,然后parent里面的children数据会变成空,你可以打个断点调试的试试。
节点就会执行deleteMenu方法,因为是删除子节点,因此执行第一个if方法,那么问题来了,好像c2这个节点什么都没操作,只是把父节点parent1传入updateMenu方法,怎么最后就可以删除c2这个节点呢?
——这里要对应我们的MongoDB的数据库中的数据结构来思考。
首先,数据库里面是不是只存了父级节点的数据?这个父级节点的数据中有children,即子节点数据。
然后,我们的删除父节点的时候,直接找到id就可以整个删除掉,这个简单理解,对吧?
好,最后,我们删除子节点,是不是要去删除父id?显然不是,而是要更新父id中的children数据。
那么,我们怎么更新呢?对于mongoDB这种接收json数据的数据库来说,太简单了,我们只用把删除了子节点的parent的这个json对象传到后台,让后台整体更新即可。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星