Вот как я определил способность, используя casl
способность. js
import { AbilityBuilder } from '@casl/ability';
// case 'Administrator':
// localStorage.getItem('role')
export default function() {
AbilityBuilder.define(can => {
switch(localStorage.getItem('role')) {
case 'Admin':
case 'CEO':
can(['add', 'read','update', 'delete']);
break;
case 'Manager':
can(['add', 'read','update', 'delete']);
break;
case 'Senior':
can(['add', 'read']);
break;
case 'Clerk':
case 'Administrator':
can('read');
break;
}
})
}
Я зарегистрировался в main. js
import { abilitiesPlugin } from '@casl/vue';
import ability from './config/ability';
Vue.use(abilitiesPlugin, ability);
Теперь я хотел использовать его в компоненте:
<v-icon
v-if="$can('delete')"
small
class="mr-2"
@click="editItem(item)"
>
edit
</v-icon>
Это дает мне ошибку: Error in render: "TypeError: t.on is not a function"
. Я реализовал это, используя несколько ресурсов в Интернете. Значит ошибка говорит, что банка не определена.