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>
  • 相关阅读:
    容斥原理
    m元集A到n元集B的满射的个数
    二项式反演公式
    多项式定理
    组合数的基本性质
    Luogu P2408 不同子串个数
    Luogu P5410【模板】扩展 KMP
    Luogu P2336 [SCOI2012]喵星球上的点名
    Luogu P2852 [USACO06DEC]牛奶模式Milk Patterns
    Luogu P4248 [AHOI2013]差异
  • 原文地址:https://www.cnblogs.com/xiaoliwang/p/9923115.html
Copyright © 2011-2022 走看看