당신은 당신의 컨트롤러에 각 변수 $element
를 주입하여 컨트롤러에 정의 된 요소에 액세스 할 수 있습니다
angular.module('myApp')
.controller('SomeCtrl',['$scope', '$element', function($scope, $element) {
$scope.buttonClick = function() {
$element.find('div').css('background-color', '#f00');
}
}]);
jQuery를이 프로젝트에 포함되어있는 경우, $element
은 컨트롤러 인 요소의 jQuery를 객체가 될 것입니다 에 정의 된 (귀하의 예제에서 외부 div). 표준 jQuery 지시문을 사용하여 하위 요소에 액세스 할 수 있습니다. 익명의 하위 div에 액세스하려면 해당 위치를 알아야하거나 다른 기준을 사용하여 대상을 지정해야합니다.
jQuery가 설치되지 않은 경우 jQuery의 하위 집합 인 jqlite가 대부분의 jQuery 선택기를 사용하여 요소를 대상으로 할 수 있지만 대부분의 다른 조작 기능은 없습니다.
그러나 컨트롤러 내부에서 DOM에 액세스하고 특히 DOM을 조작하는 것은 일반적으로 좋지 않은 것으로 간주됩니다. jQuery가 html에 변수를 바인딩하는 방식 때문에 특정 함수에서 DOM을 변경하면 각도가 이러한 변경 사항을 선택하지 못하고 다음에 바인딩 사이클을 수행 할 때이를 덮어 쓸 수 있습니다. 이를 피하기 위해 대부분의 DOM 조작은 각도 지시문에서 수행해야합니다. 때로는 컨트롤러에서 처리하는 것이 더 쉽습니다 ...이 작업을 수행하려면 $apply
및 $digest
에 대해 알아야합니다.
실제로 무엇을하려고합니까? 당신이 묘사하는 것을 할 수있는 많은 방법이 있습니다. – jadarnel27
첫 번째 div 또는 지정된 하나의 element.target에 액세스하려는 경우 – SamSamet
좀 더 구체적으로 각도 저장을 수행하고 ng 컨트롤러가 호출 된 요소 DOM 정보에 대한 액세스 권한을 부여 하시겠습니까? – SamSamet