반응형
AngularJS 컨트롤러에서 현재 범위 dom-element를 얻으려면 어떻게 해야 합니까?
나는 outerItems 목록이 있습니다. 각 outerItem 내부에는 innerItem 목록이 있습니다. 동적으로 정렬됩니다.
마우스 커서가 innerItem 중 하나를 가리키면 해당 innerItem 요소 바로 위에 팝업 창을 표시해야 합니다.
각 innerItems에 대해 별도의 팝업을 갖고 싶지 않기 때문에 Popup div는 본문의 자식입니다.
내가 보는 방식 — ng-mouseover
왼쪽/상단 속성을 절대 위치 팝업으로 설정하는 함수를 호출합니다. 따라서 각 innerItem에 대해 .offset()
페이지의 왼쪽 상단 모서리에서 왼쪽/상단 값을 제공하는 jQuery 메서드 를 호출하고 싶습니다 .
그렇다면 현재 범위 요소의 jQuery 객체를 어떻게 얻을 수 있습니까? 아니면 내가 잘못된 길을 선택했다면
컨트롤러에서:
function innerItem($scope, $element){
var jQueryInnerItem = $($element);
}
더 좋고 올바른 해결책은 지시를 내리는 것입니다. 지시어의 컨트롤러에서든 주 컨트롤러에서든 범위는 동일합니다. $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'
});
ReferenceURL : https://stackoverflow.com/questions/12960701/how-do-i-get-current-scope-dom-element-in-angularjs-controller
반응형
'IT이야기' 카테고리의 다른 글
오래된 DLL 파일이 계속 사용 중입니다. (0) | 2021.10.17 |
---|---|
Jquery에서 고유한 요소 선택기 가져오기 (0) | 2021.10.16 |
Composer 패키지를 개발하고 포함하는 방법 (0) | 2021.10.16 |
임의의 파이썬 소스 파일을 가져옵니다. (0) | 2021.10.16 |
AF네트워킹 및 백그라운드 전송 (0) | 2021.10.16 |