vue使用自定义属性控制权限

Vue.directive

当我们需要控制一组按钮根据用户权限进行隐藏显示时, 如果使用v-if会非常的麻烦,这时候我们可以使用自定义指令的方式。先在按钮上使用自定义指令b-show-btn(注意这个v-),然后写上属性值。通过自定义指令的,inserted可以获取到自定义指令的权限值,再根据这个权限值去和后台返回给我们的权限列表进行对比,从而控制按钮的隐藏和显示。

权限判断方法
export function checkArray(key) {
  let arr = [1, 3, 5]
  let index = arr.indexOf(key)
  console.log(index)
  if (index > -1){
    return true 
  }else {
    return false
  }
}
import {checkArray} from './common/array'

Vue.directive('show-btn', {
  inserted(el, binding){
    console.log('11',binding);
    let showBtn = binding.value
    if(showBtn){
      let hasPermission = checkArray(showBtn)
      if(!hasPermission){
        el.parentNode && el.parentNode.removeChild(el)
      }
    }else{
      throw new Error('error')
    }
  }
})
<template>
  <div class="">
    <button v-show-btn="1">按钮1</button>
    <button v-show-btn="2">按钮2</button>
  </div>
</template>

只有按钮1 会被显示出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值