2015-05-27 4 views
0

Я относительно новичок в угловых и еще не начал использовать свои собственные директивы. Я буду в каком-то направлении, если это правильная ситуация, чтобы попытаться и использовать ее.AngularJS: Правильно используйте директиву

У меня есть система входа в систему, где пользователю будет предоставлен набор ролей в зависимости от их доступа к системе. На данный момент это означает, что если у вас есть доступ, вы сможете просмотреть дополнительный столбец, который позволяет редактировать и удалять, в противном случае вы можете просто просмотреть содержимое таблицы.

Есть 3 возможных ролей и пользовательский объект имеет список в пределах его хранения, какая из этих ролей, которые они имеют доступ тоже

{ "FirstName": "test", "Roles": { "1": true, "2": true, "3": true } } 

Эти роли или список чисел в диапазоне от 1-3, затем хранящиеся в файле cookie, чтобы их можно было использовать для постоянной оценки того, что пользователь может и не может видеть.

Моя проблема в том, как применить эти проверки роли в html? На данный момент у меня есть очень грубый метод отправляющего значения роли, которую этот путь -

<td align="center" ng-show="CheckRoles(1)"> 

Очевидно, выполняющая роль жёстко, как это плохо ... Я думаю, что может быть лучшим методом является создание пользовательского директивы, называемые sysadmin, admin, пользователем и т. д., а затем в зависимости от того, какая видимость элемента html должна иметь, вы могли бы добавить несколько сумм этих директив.

Я думаю, я спрашиваю больше, если это будет хороший подход? И если да, то что было бы хорошим планом его настройки?

Благодаря

+0

Ваш текущий подход выглядит хорошо для меня, и очень гибкая: можно сочетать роль проверки с '' ||, вы можете использовать 'нг-if' вместо нг-шоу, вы можете сочетать роль чеки другие виды проверок и т. д. Я бы просто дал значимые имена ролям, а не 1, 2, 3. –

+0

Привет, спасибо за ответ. Я мог бы просто придерживаться моего текущего метода и делать некоторые небольшие изменения к нему, как вы предлагаете, возможно, я переусердствовал. Я все равно хотел бы поставить роли проверки метода в директиве, хотя, поскольку в противном случае мне может понадобиться создать этот метод checkroles в разных контроллерах, что его нужно будет использовать на разных страницах? – user3407039

+0

Вы можете поместить эту функцию в $ rootScope и сделать ее доступной повсюду. Или вы можете поместить его в службу и разоблачить функции в области управления, которые в ней нуждаются. –

ответ

0

Это то, что вы после этого (если ваш объект пользователя с именем «пользователь»)?

<td align="center" ng-show="user.Roles[1]"> 
Смежные вопросы