Как получить текущий объем dom-элемент в контроллере AngularJS?
у меня есть список внешних элементов. Внутри каждого внешнего элемента у меня есть список внутренних элементов. Они динамически сортируются.
когда курсор мыши указывает на один из innerItems, я должен показать всплывающее окно прямо над этим элементом innerItem.
Popup div-это ребенок тела, потому что я не хочу иметь отдельное всплывающее окно для каждого из innerItems.
так, как я это вижу-на ng-mouseover
Я вызываю функцию, которая устанавливает свойства left / top для моего абсолютно позиционированного всплывающий. Поэтому для каждого из innerItems я хотел бы назвать jQuery .offset()
метод, который дает мне левые / верхние значения из верхнего левого угла страницы.
Так как я могу получить объект jQuery текущего элемента области? Или, если я выбрал неправильный путь
2 ответа:
лучшее и правильное решение-это директива. Область действия одна и та же, будь то контроллер директивы или главный контроллер. Используйте
$element
для выполнения операций DOM. Метод, определенный в директивном контроллере, доступен в главном контроллере.пример, нахождения дочернего элемента:
var app = angular.module('myapp', []); app.directive("testDir", function () { function link(scope, element) { } return { restrict: "AE", link: link, controller:function($scope,$element){ $scope.name2 = 'this is second name'; var barGridSection = $element.find('#barGridSection'); //helps to find the child element. } }; }) app.controller('mainController', function ($scope) { $scope.name='this is first name' });