最近在学习前端的权限管理,需要根据用户的权限对按钮进行显示和隐藏,用到了vue中的自定义指令。 首先,在permission.js中定义如下函数
export function hasPermissionPoint(point) {
let points = store.getters.roles.points
if (points) {
return points.some(it => it.toLowerCase() === point.toLowerCase())
} else {
return false
}
}
用于比对用户是否拥有按钮所需要的权限。 在main.js中引入这个函数
import {hasPermissionPoint} from './utils/permission'
并在main.js中添加如下代码
Vue.directive('perm',{
inserted(el,binding){
console.log(binding)
if (!hasPermissionPoint(binding.value)) {
el.parentNode.removeChild(el);
}
}
})
用于定义自定义指令。 然后,就可以在页面中使用这个指令了
<a v-perm="'import'"
class="el-button el-button--primary el-button--mini"
title="导入">导入</a
>
需要注意的是,这里的v-perm值需要在双引号里面再加个单引号,表示字符串。我一开始就是因为没有加单引号,导致binding.value一直获取不到值,百度了很久才发现这个问题,特此说明。
|