Есть ли способ получить ширину классов в директиве?

0

Как я могу получить ширину элементов в директиве?

В моем случае директива вызывается несколько раз, и мне нужно пройти через параметр element, чтобы узнать, какой элемент вызывается.

Однако я не знаю, как получить класс внутри этой ширины элементов?

Например, у меня есть класс, называемый ярлыками, поэтому я сделал что-то в этом направлении:

console.log(element.find(.labels).width());

Это, однако, не работает, он возвращает нуль... хотя длина кода ниже:

console.log(element.find('.labels').length);

Поэтому очевидно, что кажется, что класс является объектом, но из того, что я могу сказать, это не так.

Я также должен указать, что элемент, который я пытаюсь получить, имеет свойство transform css. Я не думаю, что это повлияет на то, что я пытаюсь сделать.

https://jsfiddle.net/2g13wmxz/

  • 0
    Опубликовать больше вашей директивы. HTML и JS.
  • 0
    добавил jsfiddle моей директивы и HTML
Показать ещё 4 комментария

1 ответ

0

Я сделал что-то похожее на высоту, здесь была бы адаптация к ширине (не тестировалась):

angular.module('app')
  .directive('findWidth', function($timeout) {
    return {
      type: "A",
      link: function(scope, element) {
        $timeout(init, false);

        function init() {
          var offsetWidth = element[0].offsetWidth;
        }
      },
    };
  });

PS: вам может не понадобиться трюк с тайм-аутом

Дополнительная информация: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetWidth

  • 0
    Если бы я сделал это, это не была бы ширина, которую я ищу. Внутри элемента верхнего уровня есть дочерние элементы. Мне в основном нужен дочерний элемент с именем класса ширины меток, а не ширины параметров элемента.
  • 0
    Ах, мой плохой, не правильно прочитал ваш вопрос
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню