IT이야기

AngularJS 컨트롤러에서 현재 범위 dom-element를 얻으려면

cyworld 2021. 10. 16. 10:41
반응형

AngularJS 컨트롤러에서 현재 범위 dom-element를 얻으려면 어떻게 해야 합니까?


나는 outerItems 목록이 있습니다. 각 outerItem 내부에는 innerItem 목록이 있습니다. 동적으로 정렬됩니다.

마우스 커서가 innerItem 중 하나를 가리키면 해당 innerItem 요소 바로 위에 팝업 창을 표시해야 합니다.

각 innerItems에 대해 별도의 팝업을 갖고 싶지 않기 때문에 Popup div는 본문의 자식입니다.

내가 보는 방식 — ng-mouseover왼쪽/상단 속성을 절대 위치 팝업으로 설정하는 함수를 호출합니다. 따라서 각 innerItem에 대해 .offset()페이지의 왼쪽 상단 모서리에서 왼쪽/상단 값을 제공하는 jQuery 메서드 를 호출하고 싶습니다 .

그렇다면 현재 범위 요소의 jQuery 객체를 어떻게 얻을 수 있습니까? 아니면 내가 잘못된 길을 선택했다면


컨트롤러에서:

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

더 좋고 올바른 해결책은 지시를 내리는 것입니다. 지시어의 컨트롤러에서든 주 컨트롤러에서든 범위는 동일합니다. $elementDOM 작업을 수행하는 데 사용 합니다. 지시어 컨트롤러에 정의된 메서드는 주 컨트롤러에서 액세스할 수 있습니다.

예: 자식 요소 찾기:

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

ReferenceURL : https://stackoverflow.com/questions/12960701/how-do-i-get-current-scope-dom-element-in-angularjs-controller

반응형