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>
  • 相关阅读:
    MD5值算法原理
    AUTH过程
    锁定应用,解锁应用,锁卡,解卡,更改密码指令
    借/贷记卡的应用
    借记卡,贷记卡,准贷记卡三者的区别
    PBOC2.0与PBOC3.0的区别
    ED/EP简介
    与恒宝有关的一些常用知识
    java卡与native卡的区别
    计算机组和域的区别
  • 原文地址:https://www.cnblogs.com/xiaoliwang/p/9923115.html
Copyright © 2011-2022 走看看