Я хочу создать директиву, которая показывает подсказку (from AngularJs Bootstrap UI) на основе пользователя, авторизованного или нет.AngularJs Directive for Tooltip
Это делает работу хорошо и добавить необходимые атрибуты tooltip
и tooltip-position
но подсказка не появляется.
Если я сравниваю элемент, сгенерированный моим кодом и элементом, который имеет всплывающую подсказку как обычный html, его идентичный, кроме class="ng-scope"
, добавление этого класса вручную не помогает.
Вот моя директива код:
proGamersApp.directive('registered', ['$rootScope', 'authService', function ($rootScope, authService) {
return {
restrict: 'A',
scope: true,
link: function ($scope, element, attrs) {
element.addClass('faded');
$rootScope.$watch('user.role', function (role) {
$scope.$apply(function() {
var accessLevel = routingConfig.accessLevels[attrs.accessLevel];
if (!authService.authorize(accessLevel)) {
element.attr('tooltip-placement', 'bottom');
element.attr('tooltip', 'Avaiable for registered users.');
} else
element.attr('tooltip-placement', 'bottom');
element.attr('tooltip', 'Avaiable for registered users.');
});
});
}
};
}]);
Любая идея кто?
Update 3 удалили '$compile(element)
, поскольку он говорит, что его неопределенная функция, и изменил использование функции $ применяются. все еще получая ошибку «$ digest уже в процессе».
Новый код:
proGamersApp.directive('registered', ['$rootScope', 'authService', function ($rootScope, authService, $compile) {
return {
restrict: 'A',
scope: true,
link: function ($scope, element, attrs) {
element.addClass('faded');
$rootScope.$watch('user.role', function (role) {
var accessLevel = routingConfig.accessLevels[attrs.accessLevel];
if (!authService.authorize(accessLevel)) {
element.attr('tooltip-placement', 'bottom');
element.attr('tooltip', 'Avaiable for registered users.');
} else {
element.attr('tooltip', 'Avaiable for registered users.');
}
$scope.$apply(element);
});
}
};
}]);
Попробуйте '$ компиляции()' вашего элемент. – AlwaysALearner
Не уверен, что я сделал это правильно, но я добавил его (см. Обновление) и ничего не изменилось. –
Я добавил его, как он полагает, взгляните на обновленный пост. –