Получить clientHeight из div, используя Angular?

0

Мне нужно получить clientHeight из div? Как это сделать в Angular? (Меня не волнует, если это плохая практика на данный момент)

Я пробовал тысячу вещей, некоторые из которых можно увидеть в этом плунжере. Код ниже работает вне контроллера, но не для clientHeight:

    $scope.myElem = angular.element(document.getElementById('testDiv')); 
    $scope.myAttr = $scope.myElem.attr('name'); 

Я не знаю, как получить атрибуты из директивы. Кажется, что все примеры используют только ссылку с именованными атрибутами. Я не буду устанавливать clientHeight, мне просто нужно вернуть его.

  • 0
    В вашей директиве вы можете получить clientHeight следующим образом: elem[0].clientHeight . Ваша DOM работает в вашей директиве, а не в вашем контроллере.
  • 0
    Ты потрясающий Эрик. Почему это ноль, хотя? Убран плункер: plnkr.co/edit/0VMeFAMEnc0XeQWJiLHm?p=preview
Показать ещё 7 комментариев

1 ответ

6
Лучший ответ

Использование директивы было бы самым простым способом. DOM полностью реализуется в функции link (post link), поэтому свойства элемента должны быть доступны.

Например

.directive('logClientHeight', function($log) {
    return {
        link: function(scope, element) {
            $log.debug(element.prop('clientHeight'));
        }
    }
});

Plunker


Обратите внимание, что для элемента, имеющего типичные свойства элемента, он должен быть типичным элементом.

Спасибо Эрик Мартинес за это.

  • 0
    Спасибо большое, за проголосовали. Может быть еще один или два вопроса, если вы готовы помочь. Попытка сделать это jsfiddle.net/rs3prkfm в угловых. Ваш пример текста попадает домой, я был на этом весь день. Думаю, это то, что я получаю, не зная основ.
  • 0
    Можете ли вы взглянуть на последнюю вещь, пожалуйста? Я абсолютно понимаю, если вы этого не сделаете, и ценю помощь, которую я уже получил. С учетом сказанного мне нужно свойство 'ScrollTop': plnkr.co/edit/ZyFI13DN5Q38qSGAdtf2?p=preview Любые идеи о том, почему он застрял на 0?
Показать ещё 3 комментария

Ещё вопросы

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