怎样用后台返回的json数据在前
这个问题说起来有点多。简单点来说分几步吧: 1、获取Json字符串,两个,一个是原始菜单项的json,一个是你保存的选中的菜单项的json。客户端获取到以后,eval成对象以便使用。一般来说,这个对象至少有id, title, parentid这三项,你要记录选中状态的话,可以再加一项,比如叫ischecked。 要是再讲究一点,可以再加一个字段来记录是否本次修改。这个实体对象集是每次操作的唯一数据容器,后面的操作也以此对象集合作为操作对象。 2、render菜单,也就是把获取到的json生成菜单项。 通常,我们习惯把菜单这么个东西封装成一个js组件,只需要把json传进去,容器对象...全部
这个问题说起来有点多。简单点来说分几步吧: 1、获取Json字符串,两个,一个是原始菜单项的json,一个是你保存的选中的菜单项的json。客户端获取到以后,eval成对象以便使用。一般来说,这个对象至少有id, title, parentid这三项,你要记录选中状态的话,可以再加一项,比如叫ischecked。
要是再讲究一点,可以再加一个字段来记录是否本次修改。这个实体对象集是每次操作的唯一数据容器,后面的操作也以此对象集合作为操作对象。 2、render菜单,也就是把获取到的json生成菜单项。
通常,我们习惯把菜单这么个东西封装成一个js组件,只需要把json传进去,容器对象传进去,让这个组件来完成构建及操作响应。所以,首先要有个生成菜单项的所在的容器,比如一个div。针对这个div里,用原生js或者jquery来些个递归函数,按照json的数据循环生成树结构,无非就是append一些checkbox、li什么的配合上css显示的好看点,这个不用多说了吧?! 3、装载已选中的数据。
这其实可以在上面一步生成菜单的时候同时完成,取决于你的json数据是怎么样的。要灵活的话,也可以在这一步里用ajax获取保存的菜单数据,eval成实体对象以后,循环往上一步生成的菜单项里写状态。
4、获取选中的项。用原生js或jquery来循环你生成的菜单树,把checked的选出来就可以了,然后拼成json。这里根据第1步中你定义的对象的属性,可以取所有的,也可以只取本次有修改的,看你想怎么搞了。
最后,用ajax把这个拼好的json发回服务器端就可以了。收起