Доступ к атрибутам из директивы AngularJS

Мой шаблон AngularJS содержит некоторый пользовательский синтаксис HTML, например:

<su-label tooltip="{{field.su_documentation}}">{{field.su_name}}</su-label>

Я создал директиву для его обработки:

.directive('suLabel', function() {
  return {
    restrict: 'E',
    replace: true,
    transclude: true,
    scope: {
      title: '@tooltip'
    },
    template: '<label><a href="#" rel="tooltip" title="{{title}}" data-placement="right" ng-transclude></a></label>',
    link: function(scope, element, attrs) {
      if (attrs.tooltip) {
        element.addClass('tooltip-title');
      }
    },
  }
})

Все работает нормально, за исключением выражения attrs.tooltip, которое всегда возвращает undefined, несмотря на то, что атрибут tooltipвиден из консоли JavaScript Google Chrome при выполнении console.log(attrs).

Любое предложение?

ОБНОВЛЕНИЕ :Решение предложил Артем. Она заключалась в том, чтобы:

link: function(scope, element, attrs) {
  attrs.$observe('tooltip', function(value) {
    if (value) {
      element.addClass('tooltip-title');
    }
  });
}

AngularJS + stackoverflow = блаженство

94
задан Sangwin Gawande 6 September 2017 в 07:31
поделиться