programing

스코프에 대한 각도 ng-init 패스 요소

closeapi 2023. 11. 7. 20:55
반응형

스코프에 대한 각도 ng-init 패스 요소

현재 ng-init가 바인딩되어 있는 현재 요소를 얻을 수 있는 방법이 있습니까?

예를 들어,

<div ng-init="doSomething($element)"></div>

ng-click 할 수 있는 방법이 있다고 생각하지만 ng-init을 사용해서는 이렇게 할 수 없습니다.

<div ng-click="doSomething($event)"></div>

컨트롤러:

$scope.doSomething = function(e){ 
    var element = angular.element(e.srcElement); 
}

ng-init으로 이걸 어떻게 합니까?

HTML:

<div ng-app='app' ng-controller="Ctrl">
    <div my-dir></div>
</div>

자바스크립트:

var app = angular.module('app', [], function () {});

app.controller('Ctrl', function ($scope) {
    $scope.doSomething = function (e) {
        alert(e);
    };
});

app.directive('myDir', function () {
    return function (scope, element, attrs) {
        scope.doSomething(element);
    };
});

위에서.elementDOM 개체가 됩니다.

하지 마세요.

@CodeHater가 말했듯이, 지시에 따라 DOM 조작을 처리하는 것이 컨트롤러를 요소와 연결하는 것보다 더 나은 해결책입니다.

저도 비슷한 것을 찾고 있었는데 마침내 차일드 디브 요소에 추가된 지침을 하나 더 만들었습니다.지시 코드 블록에서 요소 객체를 얻고 이벤트와 관련된 모든 함수와 기타 명령을 저기에 배치합니다.또한 $scope 객체에 요소를 추가하면 이 객체를 다른 곳에서도 사용할 수 있고 필요할 때마다 찾을 필요가 없습니다.

언급URL : https://stackoverflow.com/questions/22292832/angular-ng-init-pass-element-to-scope

반응형