我有一份outerItems的名单。在每个outerItem中,我都有一个innerItems列表。它们是动态排序的。
当鼠标光标指向某个innerItems时,我必须在该innerItem元素的正上方显示弹出窗口。
Popup div是body的子项,因为我不希望每个innerItems都有单独的popup。
在我看来,在ng-mouseover
上,我调用函数将left/top属性设置为我的绝对位置弹出窗口。因此,对于每个innerItems,我都想调用jQuery .offset()
方法,它从页面的左上角给出了left/top值。
那么如何获取当前scope元素的jQuery对象呢?或者,如果我选择了错误的方式
发布于 2012-10-20 18:41:39
在控制器中:
function innerItem($scope, $element){
var jQueryInnerItem = $($element);
}
发布于 2015-03-19 00:30:56
更好和正确的解决方案是有一个指令。无论是在指令的控制器中还是在主控制器中,作用域都是相同的。使用$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'
});
https://stackoverflow.com/questions/12960701
复制相似问题