00:00
节点属性我们简单的介绍了一下,那接下来我们要做的呢,其实后台啊,我们就要有这样的对象来表述这样的数据了,但是我后台的数据我们表示出来的话,那我们表该怎么设计呢?也就是我们的表怎么设计就能形成一个上下级的关系呢?那么我们一块儿来看一看,首先我们这里呢,会有负菜单啊,会有负菜单节点,还有子菜单节点,那比方说我们现在呢,这边有一个叫parent啊,叫parent或者叫menu吧,嗯,好,那所以呢,我们这里写上啊,然后呢,那我们parent,我想想咱们这么写来给他一个T,咱们叫下划线啊parent menu,好,那它有它的主件,还有菜单的名称啊,好,然后这边写上,嗯,一叉叉叉叉叉二,然后YYY,嗯,三叉,那接下来我们的子菜单替下。
01:00
发现的啊menu,然后把这个写上ID啊,我们AAA好啊,这个写错了啊,这个应该是name啊,这个怎么ah了name好啊,然后呢,接下来把这个呢,我们写上一,然后呢A2,然后呢是B好三是我们的C,嗯。写完了以后,那么我们说呀,负菜单和子菜单他们形成了一对多的关系,站在负菜单的角度,一个负菜单下面会有多个子菜单,那么我们这样的话就形成了一对多的关系,那我们的表该怎么设计呢?我们一般情况下,我们应该在多的一方增加我们一的那一方的外键,因为我们从多的一方来建立关系更加容易,所以我们这里写上叫PD,这个P呢,就是那个parent ID的意思,所以我们这里写上一个单一,然后这也写一,它会有多个子菜单,就是这么个概念,然后这边我们写个二,诶,这就可以了,那。
02:09
好了,那我写完了以后,那么我们现在形成了一对多的关系,这是没有错误的,可是从概念上来讲,你不管是负菜单还是子菜单,其实它都是菜单,你拿两张表来表示是不对的,不准确啊,因为它其实都是菜单啊,父菜单和子菜单其实是它不同的类型,但它其实都是菜单,那么既然都是菜单,那么其实他们应该用一张表表示。那你用一张表表示的话,那我们这该如何表示呢?其实你把两个表合在一块儿就行了,呃,合在一块儿的话,那其实就只有一个了,T me。然后呢,就是我们的ID啊,Name,然后PID,因为啊我们的ID name在上面都是有相同的啊,我们这里呢,就是啊一个就可以了啊好,然后接下来那我们把数据也合在一块,一啊,我们写上叉叉叉叉叉,二我们写上YYYYY,嗯,好,然后呢,我们的三,诶我们写上它就可以了啊接下来写个四,我们叫做A,嗯,好,然后呢写个五,我们这里呢写个B。
03:27
行了,然后呢,写个六啊,我们写个C,嗯,行,那这样的话,我们的数据负子菜单它都有了,但是呢,你的负菜单在哪呢?我们说A的负菜单是一,那所以它的PID就是一,然后B的负菜单也是一,然后C是我们的二,那这样的话在一张表里面我们也能体现。多对一的关系和一对多的关系,只不过是自己关联自己自己的外键,关联自己的主见,诶就是这样,这样的话就形成了自己关联自己的操作啊,那既然是这样的话,那我们其实当前的许可信息,我们也可以这么来做啊,所以我们现在呢,在数据库当中把我们的表结构给它创建出来。
04:14
然后在我们这里点一下啊,然后我创建一张表,这张表的名字就叫T下划线,我们promis,咱们叫许可表,那么这个表我们首先要有一个我们的组件啊来我们写上叫ID,好写完以后,那么我们的菜单都会有名称,我们叫name,那么有name之后,我们还要给它增加一个叫PID,那PID自己关联自己的啊组件,那所以呢,写个11诶就可以了,那既然你是菜单,菜单点击之后还应该有链接地址呀,所以我们这里呢,再来写上一个叫URL,表述的是它的链接地址啊,然后呢,我们这么写就可以了啊好,那行了,那我这么写完以后,这个表我们就创建好了,然后那你这个表创建好了以后,它跟角色之间还应该有关系呢,所以再来创建一张表,这个表就是中间的关系表叫。
05:15
准备一声好,那么写完以后给他来把主件准备好,接下来我们要关联啊,咱们要关联了,嗯,关联那个ID啊,来,我们写上,接下来我们再来啊创建我们叫mi ID啊,咱们叫promi,嗯,好ID诶行了,那么关系表我们也创建好了,创建好了以后,那我现在就可以在我后台的程序当中把他们的数据给它准备好了,好,那我们回到我们当前的这个地方,我的数据啊,现在是固定写时的,我不想固定写时,我希望我们的Z他从后台把数据拿过来,动态来生成这棵树。
06:03
那我们该怎么办呢?这个时候数据我们就不能这么写了,把它去掉,那所以我们这里说一下啊,来,我们叫做异步获取我们树形结构的数据,不再是事先把它准备好了,所以把这个我们给它注掉啊,咱们暂时不要了,为什么?因为我们要从后台来得到数据了啊,所以把这个呢给他来啊,我们写个这个,嗯,好了,那么我们这个塑形结构该如何来异步读取数据呢?这个时候我们观察一下,在我们的课件当中,他就告诉你了,Sing里面其中有个属性就叫异步加载数据,所以我们这里呢,就直接把这个内容我们拷贝一下,拷贝之后放到我们的settinging当中,之前我们的settinging它其实是我们的一个空的对象,那我现在把它诶放。
07:03
东西啊,就放我们的异步,那这个异步当中就会有一个我们的ul,我写上来,咱们叫APP pass,然后斜杠,我们叫做promision,好,然后load,我们的date,我要加载我的数据,那你要加载数据的话,那这个时候我需要在我们这边把数据准备好,来吧,我们叫public,因为你是阿贾克斯亦不读取啊object,嗯,好,然后呢,我们叫做load date OK,啊,把这个写上,我们叫request,斜杠load date,嗯,好,然后还有是我们的response,诶,行了,写完以后,那我现在要把数据返回了,那我事先得有数据啊,所以把咱们这个数据啊,我们先把对象生成出来,我们写上叫做permi。
08:03
好,那你promis,我们刚才说过了,你它里面的一些属性,首先数据库要对应上ID,还有我们的name啊,还有我们的URL,嗯,好,还有就是我们刚才说的自己关联自己的PID,那么这些都有了以后还不行,为什么呢?因为我们在页面当中,我们还需要这样的一些属性,比方说open和那个children,因为你后台返回的数据要符合这样的格式,所以啊,我们这里我们还需要准备一个,咱们叫做open啊,咱们叫做open,还有我们这个呢,在这里啊,我们写上叫做children,嗯,这个children是什么意思呢?它表述的是子节点,那么你子节点其实也是formation啊,所以我们这么写就行了,然后等于new list啊,我们这么来写,然后呢,我们叫。
09:03
就可以了啊好行,把这个写完以后,现在我们增加它的get方法,这样的话,数据库的字段有了,我们的J里面的一些属性值也都有了,J的数据就准备好了,准备好了以后在我们这儿准备返回了,记住你要返回的数据应该跟这个格式是完全相同的,因为它的数据是中国号,那你这儿也应该有个中国号,所以list我们叫promis,然后我们叫promis,等于new list啊,然后我们写上叫promis好了,写完之后先我们模拟一下数据,也就后台的数据啊,我先不从数据库读取,我先模拟,那模拟的时候我先来直接返回叫promiss,诶,咱们直接返回,其实我们返回的这个就是我们最顶级显示的那些节点,那么这些节。
10:03
那我就可以先这么写了,叫promi,叫root啊,等于那个嗯,好,那么我们的root点啊,我们写上,嗯,我们叫做顶级节点啊,来顶级节点,OK,好了,写完了之后,接下来它要形成父子关系,那么这里面还会有children,那我就再来一个,我们写上叫child啊,等于new peration,好,写完之后我们写上child.set name啊,咱们叫子节点啊,好了,写完之后,那我们root和我的child之间应该增加他们的关系,所以get children点增加我们的child,嗯,好了,那你写完了以后,我们的root就要放到这个Miss里面了,所以我们的permiss点,我们增加那个root啊,好了,行,写完。
11:03
之后,那么现在我们模拟了一些数据,我们来看一看它能不能够把数据展现出来啊,跟我预想的是否相同呢?我们来看一看,把服务器给它停掉,重新启动好了,我们这个已经准备好了,现在呢,我们来试一试啊,我们异步来读取后台模拟的数据来刷新。刷新以后大家看。你会发现现在我们这儿是不是已经顶级节点出来了,你再点击这个加,是不是子节点也出来了,所以啊,说明我们的这种方式是没有问题的,只不过我们这里呢,是模拟的数据,那我们只要在数据库里面把数据按照这样的格式准备好,那不就没有问题了吗?
我来说两句