반응형
스코프에 대한 각도 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);
};
});
위에서.element
DOM 개체가 됩니다.
하지 마세요.
@CodeHater가 말했듯이, 지시에 따라 DOM 조작을 처리하는 것이 컨트롤러를 요소와 연결하는 것보다 더 나은 해결책입니다.
저도 비슷한 것을 찾고 있었는데 마침내 차일드 디브 요소에 추가된 지침을 하나 더 만들었습니다.지시 코드 블록에서 요소 객체를 얻고 이벤트와 관련된 모든 함수와 기타 명령을 저기에 배치합니다.또한 $scope 객체에 요소를 추가하면 이 객체를 다른 곳에서도 사용할 수 있고 필요할 때마다 찾을 필요가 없습니다.
언급URL : https://stackoverflow.com/questions/22292832/angular-ng-init-pass-element-to-scope
반응형
'programing' 카테고리의 다른 글
워드프레스 - 사용자 정의 사용자 프로파일 필드 저장 (0) | 2023.11.07 |
---|---|
문자열을 angularjs에서 날짜로 구문 분석하는 방법 (0) | 2023.11.07 |
Mysql 도커 컨테이너가 계속 다시 시작되고 있습니다. (0) | 2023.11.07 |
자체 마감 태그 사용 시 AngularJS 요소 지시사항이 표시되지 않음 (0) | 2023.11.07 |
가상 시스템에서 작동하지 않는 캐스케이드에서 삭제 (0) | 2023.11.07 |