首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在AngularJS控制器中获取当前作用域dom元素?

如何在AngularJS控制器中获取当前作用域dom元素?
EN

Stack Overflow用户
提问于 2012-10-19 01:52:08
回答 2查看 114.6K关注 0票数 53

我有一份outerItems的名单。在每个outerItem中,我都有一个innerItems列表。它们是动态排序的。

当鼠标光标指向某个innerItems时,我必须在该innerItem元素的正上方显示弹出窗口。

Popup div是body的子项,因为我不希望每个innerItems都有单独的popup。

在我看来,在ng-mouseover上,我调用函数将left/top属性设置为我的绝对位置弹出窗口。因此,对于每个innerItems,我都想调用jQuery .offset()方法,它从页面的左上角给出了left/top值。

那么如何获取当前scope元素的jQuery对象呢?或者,如果我选择了错误的方式

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-20 18:41:39

在控制器中:

代码语言:javascript
复制
function innerItem($scope, $element){
    var jQueryInnerItem = $($element); 
}
票数 70
EN

Stack Overflow用户

发布于 2015-03-19 00:30:56

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

例如,查找一个子元素:

代码语言:javascript
复制
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'
});
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12960701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档