如何在AngularJS控制器中获得当前范围的DOM元素?

我有一个outerItems的列表。 在每个outerItem中,我有一个innerItems列表。 它们是dynamic分类的。

当鼠标光标指向innerItem的其中一个时,我必须在innerItem元素上方显示popup窗口。

popupdiv是身体的孩子,因为我不想为每个innerItems单独popup。

我看到它的方式 – 在ng-mouseover我调用函数,设置左/顶部属性到我绝对定位的popup。 因此,对于每个innerItems,我想调用jQuery .offset()方法,从页面的左上angular给我左/顶值。

那么如何获得当前作用域元素的jQuery对象呢? 或者,如果我select了错误的方式

在控制器中:

 function innerItem($scope, $element){ var jQueryInnerItem = $($element); } 

更好和正确的解决scheme是有一个指令。 范围是相同的,无论是在指令的控制器还是主控制器。 使用$element来执行DOM操作。 指令控制器中定义的方法可在主控制器中访问。

例如,find一个子元素:

 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' });