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