Я пытаюсь сделать make-маркер с CSS и AngularJS в своем веб-магазине. У меня есть директива в Angular, которая добавляет или удаляет атрибут для элемента HTML, который реализует «badgeDirective». Как это:CSS-контент attr() установлен, но не отображается
angular.module('myApp')
.directive('badgeDirective', function($timeout){
return function(scope, elem, attrs) {
$timeout(function() {
elem.addClass('badge-directive');
}, 0);
scope.$watch(attrs.badgeDirective, function(newVal) {
if (newVal > 0) {
elem.attr('badge-counter', newVal);
} else {
elem.removeAttr('badge-counter');
}
});
}
});
HTML, выглядит следующим образом:
<md-icon class="material-icons" badge-directive="cart.length"
aria-label="Cart" >remove_shopping_cart</md-icon>
CSS-:
.badge-directive[badge-counter]:after {
background: #5da2e2;
border-radius: 7px;
color: #fff;
content: attr(badge-counter);
font-size: 10px;
font-weight: 600;
height: 14px;
line-height: 13px;
right: -1px;
padding: 0 6px;
position: absolute;
width: 12px;
text-align: center;
top: 13px;
}
Когда я запускаю сайт, я вижу, что знак на месте, но без знака от фактического счетчика:
я присмотрелся в отладчике и нашел это:
Может кто-нибудь помочь мне с этим? Я понятия не имею, почему значение не отображается ...
Я не 100% уверен, но если вы используете пользовательские атрибуты HTML элементов, не требовалось, чтобы они начали с «'данных-»? Как в: «data-badge-counter». – MateBoy
Можете ли вы создать образец для демонстрации проблемы, с которой вы столкнулись? Я опробовал ваш css в кодексе, он отлично работает, так что это не проблема с вашим кодом. http://codepen.io/anon/pen/ZLjRXy – dommmm
Вы пытались установить некоторый текст вместо значения счетчика, чтобы проверить, что ваш атрибут действительно сгенерирован? обратите внимание, что если значение равно 0, то его нет –