zoukankan      html  css  js  c++  java
  • Vue 自定义指令实现权限控制(按钮级)

    在用户登陆后,根据用户id读取用户的所有权限数据,放入本地的sessionStorage进行存储(这里我是拿到权限按钮按钮的标识,英文名称。把他们合成一个字符串存储在 btnPowerString 中。),之后,定义指令,如果用户含有此按钮权限,则在页面显示出来:

    <body>
        <div id="app">
    
            <div style=" 100px;height: 100px;background-color: pink;" v-has="{role:['editor','admin']}"></div>
    
        </div>
    </body>
    <script type="text/javascript">
        
        Vue.directive('has',{
    
            bind : function(el,binding){
    
                //需要在DOM更新完成以后再执行以下代码,不然通过 el.parentNode 获取不到父节点,因为此时还没有绑定到
    
                Vue.nextTick(function(){
                    var role = binding.value.role
                    if(!Vue.prototype.$_has(role)){
                        el.parentNode.removeChild(el);
                    }
                })
            }
        })
    
        Vue.prototype.$_has = function(role){
    
            //当前角色可以从cookie中获取
            var currentRole = ['editor','reader']
    
            if(Array.isArray(role)){
                return currentRole.some(function(ele){
                    return role.indexOf(ele) >= 0
                })
    
            }else{
                return currentRole.indexOf(role) >= 0;
            }
        }
    
    
        var  app = new Vue({
            el : "#app"
        })
    
    </script>
  • 相关阅读:
    springboot热部署
    maven换仓库地址
    floyd求最小环+例题(hdu1599)
    矩阵乘法+folyd(hdu2807)
    TSP问题+例题
    迪杰斯特拉模板题(迪杰斯特拉模板)
    小w的糖果
    DongDong坐飞机
    DongDong跳一跳
    主席树入门
  • 原文地址:https://www.cnblogs.com/xiaoliwang/p/9923115.html
Copyright © 2011-2022 走看看