ztree是我在项目中使用了很多次的一个树形js控件,它的文档比较规范。
地址:http://www.treejs.cn/v3/main.php#_zTreeInfo
我在项目中的js做了比较好的包装。
思路则是在设置角色权限的页面,点击某个按钮,获取该角色的id,然后利用js弹窗,打开一个iframe,剩下的事情都在iframe中的页面来做,这样将角色设置页面和权限选择和保存界面解耦,降低了代码的复杂度。这个角色id传入iframe可以通过iframe的src网址传入,但设置了权限以后,因为确认按钮做到了iframe的页面中,所以只能利用window.postMessage来将设置好的权限传递回去。
利用window.postMessage的目的是让写代码的人不必关心ztree怎么用,只要实现各个后台接口,写js弹窗,调用页面,并绑定message接收事件,将数据保存到服务器即可。