Я пытаюсь написать директиву что будет оценивать права пользователя.AngularJS - директива разрешения
В случае, если пользователь не разрешается видеть данное содержание
не будет отображаться содержимое (сделано, работает отлично)
запросы от контроллеров внутри директивы разрешения не будут обжигали.
Пример:
Контроллер:
function MyController ($scope){
// performing imediately server request, witch is allowed only for admin
// therefore i will get error when non admin user access this page
}
Разрешение директивы:
return {
priority: 1000,
restrict: 'E',
link: (scope, element, attrs) => {
var permission = attrs.permission;
if (/*evaluating permission*/) {
// user has permission, no work for me
return;
}
element.remove();
}
};
Все вместе:
<permission permission="isAdmin">
<div ng-controller="MyController">
</div>
</permission>
Эта версия удаляет элементы из DOM, но запрос в MyController все еще выполняется. Конечно, я могу проверить разрешения в MyController, но я не хочу этого делать.
Благодарим за помощь.
Пожалуйста, покажите нам, как вы делаете ваш запрос $ HTTP. –
или сделать jsfiddle. Думаю, я знаю, в чем проблема, но вы хотите, чтобы больше узнать о своем коде. –
2 Ray: это стандартная $ http.post '$ http.post (адрес, данные) .success (succCall) .error (errCall);' [jsfiddle] (http://jsfiddle.net/sdYgp/2/) Я не вижу, как это уместно. Я выяснил, что удаление элемента в компиляции работает, но я не уверен, что это хорошее решение. – klesta